码迷,mamicode.com
首页 > 编程语言 > 详细

<context:annotation-config/>的原理         版本       Spring3.1

时间:2016-07-11 10:42:59      阅读:155      评论:0      收藏:0      [点我收藏+]

标签:<context:annotation-config/>的原理

    1.    定义Student类

package cn;
/**
 * Student类
 * @author Administrator
 *
 */
public class Student {
    /**
     * 定义学生说话的方法
     */
    public void say(){
        System.out.println("学生说话");
    }

}

    2.    定义Person类

package cn;
/**
 * Student类
 * 
 */
import javax.annotation.Resource;

public class Person {
    /**
     * @Resource是依赖注解
     *
     */
    @Resource
    private Student student;
    
    public void say(){
        this.student.say();
    }
}

    3.    定义配置文件

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:p="http://www.springframework.org/schema/p"
    xmlns:context="http://www.springframework.org/schema/context"
    xsi:schemaLocation="http://www.springframework.org/schema/beans
                        http://www.springframework.org/schema/beans/spring-beans-3.1.xsd
                        http://www.springframework.org/schema/context
                        http://www.springframework.org/schema/context/spring-context-3.1.xsd">
    <!-- 
        1.导入context命名空间
        xmlns:context="http://www.springframework.org/schema/context"
        http://www.springframework.org/schema/context
        http://www.springframework.org/schema/context/spring-context-3.1.xsd"
     -->
    <!-- 2.注解配置解析器 用于依赖注入 -->
    <context:annotation-config/>
    <!-- 3.在所需要注解的地方配置@Resource -->
    
    <!-- 配置bean -->
    <bean id="student" class="cn.Student"></bean>
    <bean id="person" class="cn.Person"></bean>

</beans>

    4.    定义测试类

package cn;

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
/**
 * 测试类   
 *
 */
public class Test {
    public static void main(String[] args) {
        ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");
        Person person = context.getBean("person",Person.class);
        person.say();
    }

}

结果显示:

log4j:WARN No appenders could be found for logger (org.springframework.core.env.StandardEnvironment).
log4j:WARN Please initialize the log4j system properly.
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.
学生说话

<context:annotation-config/>的原理     

        1.启动Spring容器,并且加载配置文件

        2.创建对象

        3.当解析到<context:annotation-config/>的时候,会启动依赖注入的解析器

        4.会在纳入Spring管理的bean的范围内,看那些bean的属性上有@Resource注解

        5.如果@Resource注解的值为"",那么会把注解所在的属性的名称和Spring容器中bean的id进行匹配, 如果匹配成功,则把id对应的对象赋值给该属性,如果匹配不成功,则按照类型进行匹配。

        6.如果@Resource注解的值不为"",那么会把name属性的值和Spring容器中的bean的id匹配,如果匹配成功,则赋值;如果匹配不成功,则报错   

<context:annotation-config/>的原理         版本       Spring3.1

标签:<context:annotation-config/>的原理

原文地址:http://11841428.blog.51cto.com/11831428/1825224

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!