14、spring注解学习(自动装配)——@Resource、@Inject
- 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;