【Spring】Bean自动装配及使用注解装配 一、byName byType自动装配 二、使用注解
如果我们的类拥有一下字段
那么常规的配置文件 应该如下
我们来了解一下byname bytype
byName:根据属性名自动装配。此选项将检查容器并根据名字查找与属性完全一致的bean,并将其与属性自动装配。
byType:如果容器中存在一个与指定属性类型相同的bean,那么将与该属性自动装配;如果存在多个该类型bean,那么抛出异常,并指出不能使用byType方式进行自动装配;如果没有找到相匹配的bean,则什么事都不发生,也可以通过设置
byName测试:
people内字段为cat
people内字段为cat2
byType测试
如果存在2个同类型的bean时会报错
删掉一个就好了
二、使用注解
@Autowired
不需要在配置文件中写autowired指定时byname还是bytype了
autowire默认是bytype的。如果唯一則注入,否则byName查找。
使用qualifier指定bean的name 达到byname的用法
@Resource
我的java14没有这个包啊 手动导入依赖解决
<dependency>
<groupId>javax.annotation</groupId>
<artifactId>javax.annotation-api</artifactId>
<version>1.3.1</version>
</dependency>
@Autowire按照名称(by-name)装配,则
@Autowire + @qualifier("") = @Resource(name="")