Spring中@Autowired和@Resource的区别

在spring中关于@Autowired和@Resource的区别

一. @Resource

  1. @Resource 注解默认根据名称进行装配,根据名称无法找到对应的 bean则按照类型自动装配。

  2. 如果该注解指定了name 属性,则只会根据指定的名称进行装配,根据名称找不到就抛异常。

  3. 如果指定了type属性,则会根据指定的type进行装配,找不到或存在多个都抛异常。

  4. 如果同时指定了nametype属性,则从容器中找到唯一的bean装配找不到对应的bean抛出异常。

二. @Autowired

1. @Autowired则是默认根据类型进行自动装配,如果存在多个相同类型的bean,则会抛出异常。可以结合@Qualifier具体要选择哪一个bean装配。

前者是默认根据名称装配,后者则是默认根据类型装配。

posted @ 2022-04-12 08:46  加瓦同学  阅读(116)  评论(0)    收藏  举报