【Spring】Bean自动装配及使用注解装配 一、byName byType自动装配  二、使用注解

如果我们的类拥有一下字段

【Spring】Bean自动装配及使用注解装配
一、byName byType自动装配
 二、使用注解

 那么常规的配置文件 应该如下

【Spring】Bean自动装配及使用注解装配
一、byName byType自动装配
 二、使用注解

我们来了解一下byname bytype

byName:根据属性名自动装配。此选项将检查容器并根据名字查找与属性完全一致的bean,并将其与属性自动装配。 

byType:如果容器中存在一个与指定属性类型相同的bean,那么将与该属性自动装配;如果存在多个该类型bean,那么抛出异常,并指出不能使用byType方式进行自动装配;如果没有找到相匹配的bean,则什么事都不发生,也可以通过设置 

byName测试:

people内字段为cat

【Spring】Bean自动装配及使用注解装配
一、byName byType自动装配
 二、使用注解

【Spring】Bean自动装配及使用注解装配
一、byName byType自动装配
 二、使用注解

 【Spring】Bean自动装配及使用注解装配
一、byName byType自动装配
 二、使用注解

people内字段为cat2

【Spring】Bean自动装配及使用注解装配
一、byName byType自动装配
 二、使用注解

 【Spring】Bean自动装配及使用注解装配
一、byName byType自动装配
 二、使用注解

 

byType测试

如果存在2个同类型的bean时会报错

【Spring】Bean自动装配及使用注解装配
一、byName byType自动装配
 二、使用注解

删掉一个就好了

【Spring】Bean自动装配及使用注解装配
一、byName byType自动装配
 二、使用注解

 二、使用注解

@Autowired

【Spring】Bean自动装配及使用注解装配
一、byName byType自动装配
 二、使用注解

 不需要在配置文件中写autowired指定时byname还是bytype了

【Spring】Bean自动装配及使用注解装配
一、byName byType自动装配
 二、使用注解

autowire默认是bytype的。如果唯一則注入,否则byName查找。

使用qualifier指定bean的name 达到byname的用法

【Spring】Bean自动装配及使用注解装配
一、byName byType自动装配
 二、使用注解

 【Spring】Bean自动装配及使用注解装配
一、byName byType自动装配
 二、使用注解

 【Spring】Bean自动装配及使用注解装配
一、byName byType自动装配
 二、使用注解

 【Spring】Bean自动装配及使用注解装配
一、byName byType自动装配
 二、使用注解

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

【Spring】Bean自动装配及使用注解装配
一、byName byType自动装配
 二、使用注解