您的位置:首页 > 编程语言 > Java开发

Spring使用Setter依赖注入

2016-07-30 18:03 246 查看
一个简单的Spring例子来展示如何通过setter方法注入依赖项,最常用DI方法注入bean。

1. IOutputGenerator

  接口和实现类

package faj.test.javademo.set;

/**
* Created by JiaGao on 2016/7/30.
*/
public interface IOutputGenerator {
void generateOutput();
}


package faj.test.javademo.set;

/**
* Created by JiaGao on 2016/7/30.
*/
public class CsvOutputGenerator implements IOutputGenerator {
@Override
public void generateOutput() {
System.out.println("This is Csv Output Generator");
}
}


2. Helper类

一个辅助类,之后使用Spring 来注入 IOutputGenerator。

package faj.test.javademo.set;

public class OutputHelper {
private 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)”.

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:context="http://www.springframework.org/schema/context"
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 http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd"> <bean id="CsvOutputGenerator" class="faj.test.javademo.set.CsvOutputGenerator" />

<bean id="OutputHelper" class="faj.test.javademo.set.OutputHelper">
<property name="outputGenerator" ref="CsvOutputGenerator" />
</bean>
</beans>


4. 执行结果

载入一切东西,并运行它。

package faj.test.javademo.set;

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

/**
* Created by JiaGao on 2016/7/30.
*/
public class App1 {
public static void main(String[] args) {
ApplicationContext context = new ClassPathXmlApplicationContext("faj/test/javademo/set/applicationContext.xml");
OutputHelper output = (OutputHelper)context.getBean("OutputHelper");
output.generateOutput();
}
}


输出结果

This is Csv Output Generator
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: