resource和@autowired
时间: 2023-07-12 13:00:44 浏览: 49
@Resource和@Autowired都是用于依赖注入的注解,可以将一个bean注入到另一个bean中。
@Resource是J2EE提供的注解,按照名称进行装配,默认按照名称来匹配注入的bean,如果找不到与名称匹配的bean,则按照类型进行匹配,如果还是找不到,则会抛出异常。
@Autowired是Spring提供的注解,按照类型进行装配,默认情况下要求依赖对象必须存在,如果允许null值,则可以设置required属性为false。如果要按照名称进行装配,则可以结合@Qualifier注解一起使用。
总体来说,两个注解的作用是相同的,都是用于依赖注入,但是具体使用时要注意它们的区别。同时,@Resource是J2EE标准的注解,而@Autowired是Spring特有的注解,如果需要保持代码的可移植性,建议使用@Resource注解。
相关问题
@Resource 和 @Autowired
@Resource和@Autowired是用来实现依赖注入的注解,但它们有一些不同之处。首先,它们的来源不同,@Autowired来自Spring框架,而@Resource来自Java的JSR-250规范。其次,它们的依赖查找顺序不同,@Autowired先根据类型再根据名称查询,而@Resource先根据名称再根据类型查询。此外,它们支持的参数也不同,@Autowired只支持设置一个参数,而@Resource支持设置七个参数。另外,它们在依赖注入的用法上也有所不同,@Autowired既支持构造方法注入,又支持属性注入和Setter注入,而@Resource只支持属性注入和Setter注入。最后,编译器IDEA在使用时的提示也不同,当使用@Autowired注解注入Mapper对象时,编译器会提示错误,而使用@Resource注解则不会提示错误。[2]所以,根据具体的需求和使用场景,可以选择使用@Resource或@Autowired来实现依赖注入。
resource和 @autowired的区别
@Resource和@Autowired都是用于依赖注入的注解,但是它们有以下几个区别:
1. 来源不同:@Resource是Java EE提供的注解,而@Autowired是Spring提供的注解。
2. 注入方式不同:@Resource默认按照名称进行装配,如果找不到名称匹配的bean,则按照类型进行装配;而@Autowired默认按照类型进行装配,如果找不到类型匹配的bean,则会抛出异常。
3. 属性不同:@Resource有两个重要的属性,分别是name和type,其中name用于指定bean的名称,type用于指定bean的类型;而@Autowired只有一个required属性,用于指定依赖的bean是否必须存在。
4. 使用场景不同:@Resource适用于Java EE环境,而@Autowired适用于Spring环境。
总的来说,@Resource更加灵活,但是@Autowired更加方便。在使用@Autowired时,最好使用构造函数的方式注入。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![doc](https://img-home.csdnimg.cn/images/20210720083327.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![doc](https://img-home.csdnimg.cn/images/20210720083327.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)