- Spring 还支持使用
@Resource(JSR250)和@Inject(JSR330)[Java规范的注解]
AutowiredAnnotationBeanPostProcessor (后置处理器)完成解析自动装配功能
@Resource
- 可以和
@Autowired一样实现自动注入功能,默认是按照组件名称进行装配的。
- 没有能支持
@Primary功能,没有支持@Autowired(required = false)
@Inject
@Inject 需要导入javax.inject依赖才能使用,和@Autowired功能一样,但没有required=false属性值设定。
<dependency>
<groupId>javax.inject</groupId>
<artifactId>javax.inject</artifactId>
<version>1</version>
</dependency>
区别
@Autowired 是Spring定义的,@Resource 和@Inject 都是Java的规范
代码实例
// @Autowired(required = false)
// @Qualifier("bookRepository")
// @Resource(name = "bookRepository")
@Inject
private BookRepository bookRepository2;