Springboot中Autowried与Resource使用有何不同之处?

2026-05-26 05:020阅读0评论SEO资源
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计975个文字,预计阅读时间需要4分钟。

Springboot中Autowried与Resource使用有何不同之处?

在项目开发过程中,发现项目中的加载类时,部分地方使用@Autowired注解,有的地方使用@Resource注解。在网络上搜集资料后,了解到@Resource和@Autowired都可以作为注入属性的修饰符,共同点是两者都可用于注入属性,不同点是@Autowired默认按类型匹配,而@Resource默认按名称匹配。在接口只有一个实现类时,两者均可使用。

在做项目时,发现项目中 加载类时,有的地方使用@Autowired,有的地方使用@Resource

在网上搜集了资料

共同点

@Resource和@Autowired都可以作为注入属性的修饰,在接口仅有单一实现类时,两个注解的修饰效果相同,可以互相替换,不影响使用。

不同点

  @Resource是Java自己的注解,@Resource有两个属性是比较重要的,分是name和type;Spring将@Resource注解的name属性解析为bean的名字,而type属性则解析为bean的类型。所以如果使用name属性,则使用byName的自动注入策略,而使用type属性时则使用byType自动注入策略。如果既不指定name也不指定type属性,这时将通过反射机制使用byName自动注入策略。

  @Autowired是spring的注解,是spring2.5版本引入的,Autowired只根据type进行注入,不会去匹配name。如果涉及到type无法辨别注入对象时,那需要依赖@Qualifier或@Primary注解一起来修饰。

阅读全文

本文共计975个文字,预计阅读时间需要4分钟。

Springboot中Autowried与Resource使用有何不同之处?

在项目开发过程中,发现项目中的加载类时,部分地方使用@Autowired注解,有的地方使用@Resource注解。在网络上搜集资料后,了解到@Resource和@Autowired都可以作为注入属性的修饰符,共同点是两者都可用于注入属性,不同点是@Autowired默认按类型匹配,而@Resource默认按名称匹配。在接口只有一个实现类时,两者均可使用。

在做项目时,发现项目中 加载类时,有的地方使用@Autowired,有的地方使用@Resource

在网上搜集了资料

共同点

@Resource和@Autowired都可以作为注入属性的修饰,在接口仅有单一实现类时,两个注解的修饰效果相同,可以互相替换,不影响使用。

不同点

  @Resource是Java自己的注解,@Resource有两个属性是比较重要的,分是name和type;Spring将@Resource注解的name属性解析为bean的名字,而type属性则解析为bean的类型。所以如果使用name属性,则使用byName的自动注入策略,而使用type属性时则使用byType自动注入策略。如果既不指定name也不指定type属性,这时将通过反射机制使用byName自动注入策略。

  @Autowired是spring的注解,是spring2.5版本引入的,Autowired只根据type进行注入,不会去匹配name。如果涉及到type无法辨别注入对象时,那需要依赖@Qualifier或@Primary注解一起来修饰。

阅读全文