@resource和@autowire的区别
时间: 2023-09-26 12:04:57 浏览: 71
1.@Resource是按名称进行注入的,属于java自带的。@Autowired是按类型进行注入的,属于Spring。.pdf
`@Resource` 和 `@Autowired` 都是 Spring Framework 中用于实现依赖注入的注解。它们的区别如下:
1. `@Resource` 来自于 Java EE 标准,`@Autowired` 是 Spring 自己的注解。
2. `@Resource` 默认按照名称进行注入,可以通过 `name` 属性指定注入的 bean 名称,但是不支持 `@Primary` 和 `@Qualifier` 注解。
3. `@Autowired` 默认按照类型进行注入,可以通过 `@Qualifier` 指定注入的 bean 名称,也支持 `@Primary` 注解。
4. `@Resource` 可以注入任何对象,包括基本数据类型和字符串,而 `@Autowired` 只能注入 Spring 管理的 bean。
5. `@Resource` 没有 required 属性,表示注入的 bean 必须存在,否则会抛出异常;而 `@Autowired` 的 required 属性默认为 true,表示必须要有对应的 bean,否则会抛出异常,可以通过设置为 false 来禁用此功能。
总之,`@Resource` 是 Java EE 标准的注解,支持按名称注入任何对象,但是不支持 `@Primary` 和 `@Qualifier` 注解;`@Autowired` 是 Spring 自己的注解,支持按类型注入 Spring 管理的 bean,并且支持 `@Primary` 和 `@Qualifier` 注解。
阅读全文