Spring注解自动装配
使用须知:
1、导入context约束
2、配置注解支持
<context:annotation-config/>
@Autowired
直接在属性上使用即可,也可以在set方法上使用。
使用Autowired可以不写set方法,前提是自动装配的属性在容器中,且符合名字byName。
@nullable 表示当前字段允许为null。
@Autowired(required = false)
设置autowired中required属性为false,表示当前属性可以为null。
@Qualifier
如果 @Autowired自动装配环境比较复杂,自动装配无法通过一个注解 @Autowired完成时,可以通过@Qualifier(value=“bean id”)合作使用,指定一个唯一的bean对象注入。
@Autowired
@Qualifier(value = "dog11")
private Dog dog;
@Resource(name="")
@Resource的功能和@Autowired+@Qualifier的功能相似。
@Resource先在上下文中匹配name,未匹配到则去匹配class,均未匹配到则报错。
@Resource(name = "cat22")
private Cat cat;
@Resource和@Autowired的区别:
- 都是用来自动装配的,都可以放在属性字段上
- @Autowired通过bytype实现,而且必须要求这个对象存在,不然空指针异常【常用】
- @Resource默认通过byname实现,如果找不到名字,则通过bytype实现!【常用】
- 执行顺序不同