Autowired和Resource关键字的区别
时间: 2023-05-30 12:02:24 浏览: 74
@Autowired和@Resource都是用于注入依赖的关键字,但是它们有以下区别:
1. 来源不同:@Autowired是Spring提供的,而@Resource是Java EE提供的。
2. 注入方式不同:@Autowired默认按类型注入,如果有多个同类型的依赖,可以通过@Qualifier指定具体依赖;@Resource默认按名称注入,如果没有指定名称,则使用属性名作为依赖名称。
3. 可使用范围不同:@Autowired可以注入任何Spring管理的Bean,包括Controller、Service、DAO等;@Resource只能注入Java EE标准的Bean,包括EJB、Servlet、Web Service等。
4. 对Null值的处理不同:@Autowired允许注入Null值,而@Resource不允许。
相关问题
Autowired和Resource区别
@Autowired和@Resource都是用于依赖注入的注解,但它们有一些区别。
@Autowired是Spring框架提供的注解,它可以用于自动装配Bean。当我们在一个类中使用@Autowired注解时,Spring会自动在容器中查找匹配的Bean,并将其注入到对应的属性、构造函数或者方法中。@Autowired注解默认按照类型进行匹配,如果有多个匹配的Bean,可以通过@Qualifier注解指定具体的Bean名称。
@Resource是Java EE提供的注解,也可以用于依赖注入。与@Autowired不同的是,@Resource既可以按照名称进行匹配,也可以按照类型进行匹配。当我们在一个类中使用@Resource注解时,可以通过name属性指定具体的Bean名称,或者通过type属性指定具体的Bean类型。
另外,@Autowired是Spring的注解,而@Resource是Java EE的注解。因此,如果你的项目是基于Spring框架开发的,建议使用@Autowired注解;如果你的项目是基于Java EE开发的,可以使用@Resource注解。
autowired和resource的区别
`@Autowired` 和 `@Resource` 都可以用来在 Spring 中自动装配 bean,但它们之间有一些重要的区别:
- `@Autowired` 是 Spring 框架中自带的注解,用来实现自动装配。它可以用在属性、构造器、方法上,默认按类型匹配,当然也可以通过 `@Qualifier` 来指定某个具体的 bean。
- `@Resource` 是 Java 标准库中自带的注解,用来实现自动装配。它只能用在属性上,默认按照名称匹配,如果没有找到名称匹配的 bean,则按类型匹配。
总结来说,如果你使用的是 Spring 框架,那么用 `@Autowired` 更为方便,因为它支持更多的装配方式,并且更加灵活,而 `@Resource` 更适合在非 Spring 框架中使用。