@Autowired @Resource @Inject 自动注入

一、@AutoWired ( spring 的注解 )自动注入

/**
 * @Autowired:
 *         默认按照 Student 类型去容器中找对应的组件:applicationContext.getBean(Student.class);
 *         如果找到多个相同类型的组件,再将 student 这个属性名作为 id 去容器中找对应组件 applicationContext.getBean("student");
 *         required = false,容器中如果没有该组件,就为 null
 * @Qualifier:
 *         指定需要装配的组件 id,而不是使用 student 这个属性名作为 id
 */
@Qualifier("student2")
@Autowired(required = false)
private Student student;

二、@Resource ( JSR250 规范的注解 )

/**
 * @Resource:
 *         默认按照组件名 student 作为 id 去容器中找对应的属性
 *         使用 name = "student2" 指定 id
*     没有 required = false 功能  
*/ @Resource(name = "student2") private Student student;

三、@Inject ( JSR330 规范 ) 和 @AutoWired 功能一样。但是没有 required = false  功能

  导入 jar

<!-- https://mvnrepository.com/artifact/javax.inject/javax.inject -->
<dependency>
    <groupId>javax.inject</groupId>
    <artifactId>javax.inject</artifactId>
    <version>1</version>
</dependency>
@Inject
private Student student;

 

posted @ 2018-04-01 10:43  方方方方方方  阅读(207)  评论(0编辑  收藏  举报