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;
原文地址:https://www.cnblogs.com/lyh233/p/12449481.html