在Spring框架中,依赖注入(DI)的设计模式是用来定义对象彼此间的依赖。它主要有两种类型:
- Setter方法注入
- 构造器注入
1.Setter方法注入
这是最流行最简单的DI注入方法,通过设置方法注入依赖。
配置Bean在Spring配置文件,并引用Bean “CsvOutputGenerator” 到 “OutputHelper”,通过property 和 ref 标签。
<bean id="OutputHelper" class="com.springapp.output.OutputHelper">
<property name="outputGenerator" ref="CsvOutputGenerator" />
</bean>
<bean id="CsvOutputGenerator" class="com.springapp.output.impl.CsvOutputGenerator" />
2.构造方法注入
此DI方法将通过构造函数注入依赖。
<bean id="OutputHelper" class="com.springapp.output.OutputHelper">
<constructor-arg>
<ref bean="JsonOutputGenerator" />
</constructor-arg>
</bean>
<bean id="JsonOutputGenerator" class="com.springapp.output.impl.JsonOutputGenerator" />
3.构造方法注入类型歧义
在Spring框架中,当一个类包含多个构造函数带的参数相同,它总是会造成构造函数注入参数类型歧义的问题,
显式声明每个构造函数参数的数据类型,以避免上述构造注入型歧义的问题
<bean id="CustomerBean" class="com.springapp.common.Customer">
<constructor-arg>
<value>ssss</value>
</constructor-arg>
<constructor-arg>
<value>188</value>
</constructor-arg>
<constructor-arg>
<value>28</value>
</constructor-arg>
</bean>