Spring使用Setter依赖注入

Posted Wit_tang

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Spring使用Setter依赖注入相关的知识,希望对你有一定的参考价值。

一个简单的Spring例子来展示如何通过setter方法注入依赖项,最常用DI方法注入bean。

1. IOutputGenerator

接口和实现类
package com.yiibai.output;
 
public interface IOutputGenerator

	public void generateOutput();
package com.yiibai.output.impl;

import com.yiibai.output.IOutputGenerator;

public class CsvOutputGenerator implements IOutputGenerator 
	public void generateOutput() 
		System.out.println("This is Csv Output Generator");
	

2. Helper类

一个辅助类,之后使用Spring 来注入 IOutputGenerator。
package com.yiibai.output;

import com.yiibai.output.IOutputGenerator;

public class OutputHelper 
	IOutputGenerator outputGenerator;

	public void generateOutput() 
		outputGenerator.generateOutput();
	

	//DI via setter method
	public void setOutputGenerator(IOutputGenerator outputGenerator) 
		this.outputGenerator = outputGenerator;
	

3. Spring配置

配置Bean在Spring配置文件,并引用Bean “CsvOutputGenerator” 到 “OutputHelper”,通过property 和 ref 标签。

在这种情况下,Spring将通过setter方法注入Bean “CsvOutputGenerator” 到“OutputHelper”类,“setOutputGenerator(IOutputGenerator outputGenerator)”.

<beans xmlns="http://www.springframework.org/schema/beans"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://www.springframework.org/schema/beans
	http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">

	<bean id="OutputHelper" class="com.yiibai.output.OutputHelper">
		<property name="outputGenerator" ref="CsvOutputGenerator" />
	</bean>
 
	<bean id="CsvOutputGenerator" class="com.yiibai.output.impl.CsvOutputGenerator" />

</beans>

4. 执行结果

载入一切东西,并运行它。
package com.yiibai.common;

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import com.yiibai.output.OutputHelper;

public class App 
	public static void main(String[] args) 
		ApplicationContext context = new ClassPathXmlApplicationContext(
				"applicationContext.xml"); OutputHelper output = (OutputHelper)context.getBean("OutputHelper");
    	        output.generateOutput();
	

输出结果

This is Csv Output Generator

以上是关于Spring使用Setter依赖注入的主要内容,如果未能解决你的问题,请参考以下文章

Spring5依赖注入常用的三种方法:构造注入Setter注入自动装配

Spring依赖注入的方式

spring学习 五 依赖注入的方式

Spring 依赖注入(DI)详解 [Spring][依赖注入的 6 种实现方式][setter注入][构造器注入][注解注入][自动装配注入][静态工厂注入][实例工厂注入]

Spring设置注入和构造注入的区别

Spring 学习笔记02