【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="")

原文地址:https://www.cnblogs.com/cckong/p/14377158.html