@Autowired @Resource @Inject 自动注入

Posted 方方方方方方

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了@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;

 

以上是关于@Autowired @Resource @Inject 自动注入的主要内容,如果未能解决你的问题,请参考以下文章

@Resource和@Autowired

@Autowired 与@Resource的区别(详细)

关于@Autowired 与@Resource的

@Autowired与@Resource的区别

resource与autowired的区别

@Autowired @Resource @Qualifier的区别