Autowired和Resource的区别.

Autowired和Resource的区别.

标签(空格分隔): Spring


@Resource 默认按照名称来装配注入, 只有当找不到与匹配的bean才会按照类型来装配注入.

  1. 如果同时指定了name和type, 则从Spring上下文忠找到唯一匹配的bean进行装配, 找不到则抛出异常.
  2. 如果指定了name, 则从上下文中查找名称匹配的bean进行装配, 找不到则抛出异常.
  3. 如果指定了type,则从上下文中找到类型匹配的唯一bean进行装配, 找不到或者找到多个都会异常报错.
  4. 如果既没有指定name,又没有指定type,则自动按照byName方式进行装配;如果没有匹配,则回退为一个原始类型进行匹配,如果匹配则自动装配.

@Autowired默认按类型装配(这个注解是属于spring的),默认情况下必须要求依赖对象必须存在,如果要允许null值,可以设置它的required属性为false,如:@Autowired(required=false) ,如果我们想使用名称装配可以结合@Qualifier注解进行使用

原文地址:https://www.cnblogs.com/A-FM/p/12673934.html