spring6-依赖注入

sprint的依赖注入

dependency injection
IOC是降低程序之间的依赖关系的,我们把依赖关系交给spring维护,依赖关系的维护就叫做依赖注入
注入的类型 基本类型和Sring、 bean类型、集合类型
注入的方法 构造函数、set、注解

构造函数注入

使用constructor-arg标签

type标签

我们很容易想到

1
2
3
<bean id="myclass" class="com.wsx.spring.Myclass">
<constructor-arg type="java.lang.String" value="wsx"></constructor-arg>
</bean>

index 标签

使用下标,位置从0开始

1
2
3
<bean id="myclass" class="com.wsx.spring.Myclass">
<constructor-arg index="0" value="wsx"></constructor-arg>
</bean>

name 标签

使用参数的名称

1
2
3
<bean id="myclass" class="com.wsx.spring.Myclass">
<constructor-arg name="name" value="wsx"></constructor-arg>
</bean>

使用ref

使用其他的bean

1
2
3
<bean id="myclass" class="com.wsx.spring.Myclass">
<constructor-arg name="myobj" ref="myobj"></constructor-arg>
</bean>

set方法注入

property标签

1
2
3
4
<bean id="myclass" class="com.wsx.spring.Myclass">
<property name="name" value="wsx"></property>
<property name="myobj" ref="myobj"></property>
</bean>

构造函数注入和set方法注入

set注入可以有选择性地注入,构造函数强制了必要的数据

集合的注入

当我们碰到集合的时候,使用ref就不合适了,我们发现property内部还有标签

1
2
3
4
5
6
7
8
9
10
11
<bean id="myclass" class="com.wsx.spring.Myclass">
<property name="mylist">
<list>
<value>1</value>
<value>2</value>
<value>3</value>
<value>4</value>
<value>5</value>
</list>
</property>
</bean>

注意上面的 我们甚至可以使用其他的例如
同理也可以互换


spring6-依赖注入
http://fightinggg.github.io/fluid/Q8BOOS.html
作者
fightinggg
发布于
2020年4月6日
许可协议