标签:<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