@Resource 和 @Autowired 都是用于依赖注入的注解,但它们有一些区别。
@Resource 注解:
 
-  来源: - @Resource是由 JavaEE 提供的注解,它不属于 Spring 框架的一部分。
 
-  装配方式: - @Resource默认按照名称进行装配,如果找不到匹配的名称,则按照类型进行装配。
- 通过 name属性可以指定要装配的 bean 的名称。
- 通过 type属性可以指定要装配的 bean 的类型。
 
-  可选性: - @Resource注解中的- required属性默认为- true,表示要求依赖对象必须存在,否则会抛出异常。
 
-  适用范围: - @Resource可以应用于字段、setter 方法和构造方法。
 
@Autowired 注解:
 
-  来源: - @Autowired是 Spring 框架提供的注解,用于实现依赖注入。
 
-  装配方式: - @Autowired默认按照类型进行装配,如果找不到匹配的类型,则会抛出异常。
- 通过 @Qualifier注解可以指定要装配的 bean 的名称。
- 可以与 @Primary注解配合使用,以指定首选的 bean。
- 如果需要按名称进行装配,可以结合 @Qualifier注解使用。
 
-  可选性: - @Autowired注解的- required属性默认为- true,表示要求依赖对象必须存在,否则会抛出异常。
- 可以将 required属性设置为false,表示依赖对象可以为null。
 
-  适用范围: - @Autowired注解可以应用于字段、setter 方法、构造方法以及方法参数。
 
总结区别:
- @Resource是 JavaEE 的标准注解,而- @Autowired是 Spring 框架提供的注解。
- @Resource默认按名称装配,- @Autowired默认按类型装配。
- @Resource的- required属性默认为- true,- @Autowired的- required属性默认为- true。
- @Resource的使用范围更广泛,可以应用于字段、setter 方法和构造方法,而- @Autowired还可以应用于方法参数。