Spring的@Resource注解及原理
来源:互联网 发布:三杰麻将机编程 编辑:程序博客网 时间:2024/05/05 02:58
package cn.xhx.spring.di.annotation.test;import org.junit.Test;import org.springframework.context.ApplicationContext;import org.springframework.context.support.ClassPathXmlApplicationContext;import cn.xhx.spring.di.annotation.Person;public class AnnotationTest {/** * 原理 * 1、当启动spring容器时,创建两个对象(student,person) * 2、当spring容器解析到 * <context:annotation-config></context:annotation-config> * spring容器会在spring容器管理的bean的范围内查找这些类的属性上面是否加了@Resource注解 * 3、spring解析@Resource注解的name属性 * 如果name属性为"" * 说明该注解根本没有写name属性 * spring容器会得到该注解所在的属性的名称和spring容器中的id相匹配,如果匹配成功,则赋值 * 如果匹配不成功,则按照类型进行匹配 * 还不成功,报错! * 如果name属性不为"" * 则按照name属性的值和spring容器中的id做匹配,如果匹配成功,则赋值,不成功,则报错! *说明: *注解只能作用于引用类型 *注解写法比较简单,但是效率比较低 *xml写法比较复杂,但是效率比较高 */@Testpublic void AnnotationTest () {ApplicationContext applicationContext = new ClassPathXmlApplicationContext("applicationContext.xml");Person person = (Person)applicationContext.getBean("person");person.getStudent().say();//输出"student say"}}
package cn.xhx.spring.di.annotation;import java.util.List;import java.util.Map;import java.util.Properties;import java.util.Set;import javax.annotation.Resource;public class Person {private String name;@Resource(name="student")/** * @Autowired //按照类型进行匹配 * @Qualifier("student") //按照id进行匹配 * @Resource是java扩展包下的,spring为了不使用java的注解,编写了@Autowired和@Qualifier,其2个的作用相加等于@Resource */private Student student;public String getName() {return name;}public void setName(String name) {this.name = name;}public Student getStudent() {return student;}}
package cn.xhx.spring.di.annotation;public class Student{public void say() {System.out.println("student say");}}
<?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:context="http://www.springframework.org/schema/context" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd"><bean id="student" class="cn.xhx.spring.di.annotation.Student"></bean><bean id="person" class="cn.xhx.spring.di.annotation.Person"></bean><context:annotation-config></context:annotation-config></beans>
0 0
- Spring的@Resource注解及原理
- Spring 编码剖析@Resource注解的实现原理
- Spring(八)编码剖析@Resource注解的实现原理
- Spring(八)编码剖析@Resource注解的实现原理
- Spring @Resource、@Autowired、@Qualifier的注解注入及区别
- Spring @Resource、@Autowired、@Qualifier的注解注入及区别
- Spring @Resource、@Autowired、@Qualifier的注解注入及区别
- Spring @Resource、@Autowired、@Qualifier的注解注入及区别 .
- Spring Resource、Autowired、Qualifier的注解注入及区别
- Spring @Resource、@Autowired、@Qualifier的注解注入及区别
- Spring中@Resource、@Autowired、@Qualifier的注解注入及区别
- Spring @Resource、@Autowired、@Qualifier的注解注入及区别
- Spring @Resource、@Autowired、@Qualifier的注解注入及区别
- Spring @Resource、@Autowired、@Qualifier的注解注入及区别
- Spring @Resource、@Autowired、@Qualifier的注解注入及区别
- Spring @Resource、@Autowired、@Qualifier的注解注入及区别
- Spring @Resource、@Autowired、@Qualifier的注解注入及区别
- Spring @Resource、@Autowired、@Qualifier的注解注入及区别
- 文章标题
- leetcode119.Pascal'sTriangleII
- CSDN 博客可用的 font-awesome 图标
- 第五周项目1 三角形类练习(2)
- Dialog透明设置
- Spring的@Resource注解及原理
- 第三方QQ接口的登陆基础测试
- Xming的一点tips
- jdk动态代理和cglib动态代理
- Solution to Min-Avg-Two-Slice
- SSH 小总
- 程序员如何快速准备面试中的算法
- 关于导航栏
- APM2.8自驾仪入门手册(AMOV AUTO)