@Autowired
Spring
自定义的注解
- 默认按类型装配,要求该类型的依赖对象必须存在,找不到该类型则报错
- 设置
required
值为false
则允许装配失败
@Autowired(required=false)
- 配合
@Qualifier("xxx")
使用可以指定名称装配 - 方式一 : 在成员变量声明前使用
@Autowired
@Qualifier("xxx")
private String name;
- 方式二 : 配合
setter
方法使用
@Autowired
public setXxx(@Qualifier("xxx") String name){ ... }
或者
@Autowired
@Qualifier("xxx")
public setXxx(@Qualifier("xxx") String name){ ... }
@Resource
要使用该注解,JDK
版本必须为1.6以上
- 默认按名称装配
- 写在成员变量声明前,则搜索同名Bean
- 写在
setter
方法前,则搜索setXxx(String name)
中的Xxx名称的Bean
注意不是搜索形参name!
- 按名称装配
@Resource(name="xxx")
- 搜索不到会报异常
搜索的异同
@Autowired在默认情况下(即不指定名称)
@Resource默认情况未找到同名Bean按类型搜索情况下
这两种使用方式 , 在未找到该类型或找到两个以上同类型Bean时则都会报异常指定名称未找到时
@Autowired
会报异常@Resource
会换成按类型继续搜索
注意
@Autowired
只要设置required为false , 则装配失败也不会报异常 , 相应属性会被设为null