Autowire 和 @Resource 的区别
时间: 2024-02-28 21:39:12 浏览: 72
1.@Resource是按名称进行注入的,属于java自带的。@Autowired是按类型进行注入的,属于Spring。.pdf
Autowire 和 @Resource 都是用于依赖注入的注解,但它们有以下区别:
1. Autowire 是 Spring 框架提供的注解,而 @Resource 是 JSR-250 提供的注解,也被 Spring 支持。
2. Autowire 默认按照类型进行注入,如果类型不唯一,则按照名称匹配注入。而 @Resource 默认按照名称进行注入,如果名称不存在,则按照类型进行注入。
3. Autowire 只能注入 Spring 容器中的 bean,而 @Resource 可以注入任意的 bean,包括 Java 标准库中的对象。
4. Autowire 可以使用 @Qualifier 注解指定注入 bean 的名称,而 @Resource 可以使用 name 属性指定注入 bean 的名称。
5. Autowire 支持 byType、byName 和 constructor 这三种自动注入方式,而 @Resource 只支持 byName 方式的自动注入。
总之,Autowire 和 @Resource 在实现上有所不同,但在使用时都能实现依赖注入的功能。选择哪种方式需要根据具体情况进行选择。
阅读全文