@Autowired 何@Resource的区别

动态 未结 0 162
小小草
小小草 LV1 2023年9月23日 23:40 发表
`@Autowired` 和 `@Resource` 都是 Spring 中用于进行依赖注入的注解,它们的主要区别如下: 1. 来源不同 `@Autowired` 是 Spring 提供的注解,而 `@Resource` 是 JavaEE 提供的注解,需要导入 `javax.annotation.Resource` 包。 2. 注入方式不同 `@Autowired` 可以按照类型进行注入,也可以按照名称进行注入。如果按照名称进行注入,可以结合 `@Qualifier` 注解一起使用。 ```java @Autowired private UserService userService; @Autowired @Qualifier("userServiceImpl") private UserService userService; ``` `@Resource` 只能按照名称进行注入,不能按照类型进行注入。如果没有指定名称,则默认按照属性名进行匹配。 ```java @Resource private UserService userService; @Resource(name = "userServiceImpl") private UserService userService; ``` 3. 兼容性不同 `@Autowired` 是 Spring 提供的注解,只能在 Spring 环境中使用。 `@Resource` 是 JavaEE 提供的注解,可以在任何支持 JavaEE 规范的环境中使用。 4. 属性不同 `@Autowired` 注解的属性比较多,包括 `required`、`autowire`、`qualifier` 等。 `@Resource` 注解的属性比较少,只有 `name` 和 `type` 两个属性。 综上所述,`@Autowired` 和 `@Resource` 在注入方式、兼容性和属性等方面存在一些差异,开发者可以根据实际情况选择使用。
收藏(0)  分享
相关标签: 智能问答
问题没解决?让AI助手帮你作答 AI助手
0个回复
  • 消灭零回复