推荐使用@Resource,为什么那么多人用@Autowired
时间: 2023-11-11 17:26:15 浏览: 67
@Resource 和@Autowired 都是用于自动装配依赖的注解,但区别在于:
1. @Resource 默认按照名称进行装配,也可以通过name属性指定装配的 Bean 的名称,它是J2EE的注解,属于Java规范的一部分,因此具有更好的兼容性。
2. @Autowired 默认按照类型进行装配,它是Spring的注解,可以通过required属性指定是否必须存在依赖对象。
因此,如果你需要更好的兼容性,建议使用@Resource,如果你需要更灵活的装配方式,可以选择@Autowired。
相关问题
@Resource 和@Autowired 推荐用哪个
在 Spring 中,@Autowired 和 @Resource 都可以用于自动装配 Bean 对象,但它们在某些方面有所不同。
首先,@Autowired 是 Spring 自带的注解,而 @Resource 是 JavaEE 中定义的注解。因此,如果只考虑 Spring 框架本身,建议使用 @Autowired 进行自动装配,因为它更加灵活、功能更强大。
其次,@Autowired 可以通过 @Qualifier 注解指定需要注入的 Bean 的名称,而 @Resource 依赖于 Bean 的名称进行匹配。因此,如果需要精确指定注入哪个 Bean,使用 @Autowired 更加方便。
最后,@Autowired 是 Spring 的特有注解,更加符合 Spring 的风格和理念,因此在 Spring 项目中建议使用 @Autowired 进行自动装配。
综上所述,如果在 Spring 项目中需要自动装配 Bean 对象,建议使用 @Autowired,如果需要与其他 JavaEE 框架进行集成,可以考虑使用 @Resource。
@Autowired和@Resource有什么区别?
@Autowired和@Resource都是用于依赖注入的注解,但它们有以下几点区别:
1. 来源不同:@Autowired是Spring自带的注解,而@Resource是JSR-250规范定义的注解,由JavaEE提供。
2. 自动装配方式不同:@Autowired默认按照类型进行自动装配,如果有多个类型相同的Bean,则可以通过@Qualifier注解指定Bean的名称。而@Resource默认按照名称进行自动装配,如果没有指定名称,则默认使用属性名称作为Bean的名称。
3. 支持类型不同:@Autowired可以注入任何类型的Bean,包括基本类型和String类型等。而@Resource只能注入Bean类型。
4. 适用范围不同:@Autowired适用于Spring框架中,而@Resource是JavaEE规范中的注解,在JavaEE环境中也可以使用。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![doc](https://img-home.csdnimg.cn/images/20210720083327.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)