Spring教程 - Spring Setter注入
Spring Setter注入是最流行和简单的依赖注入方法,它将通过setter方法注入依赖关系。
在Setter依赖注入中,IoC容器注入一个Java Bean的依赖通过JavaBean风格的setter方法。
Java Bean的setters公开了IoC容器可以管理的依赖关系。
在实践中,Setter注射是最广泛使用的注射机制,它是一个最简单的IoC机制来实现。
例子
假设我们定义了以下接口和Java bean。
package com.www.w3cschool.cnmon;
public interface Printer
{
public void print();
}
之后,我们将创建CSV打印机,将输出CSV格式的数据。CSV打印机实现打印机接口。
package com.www.w3cschool.cnmon;
public class CSVPrinter implements Printer
{
public void print(){
System.out.println("Csv Output Printer");
}
}
然后是时间创建JSON打印机将输出JSON格式的消息。JSON打印机还实现了打印机接口。
package com.www.w3cschool.cnmon;
public class JSONPrinter implements Printer
{
public void print(){
System.out.println("Json Output Printer");
}
}
通过使用Spring依赖注入(DI),我们可以在Spring配置XML文件中声明Java Bean。 然后在xml文件中连接Java Bean。这样Spring可以使我们的打印机松散耦合到不同的打印机实现。
通过使用Spring依赖注入(DI),我们可以在Spring配置XML文件中声明Java Bean。 然后在xml文件中连接Java Bean。这样Spring可以使我们的打印机松散耦合到不同的打印机实现。...
package com.www.w3cschool.cnmon;
public class OutputHelper
{
Printer outputGenerator;
public void print(){
outputGenerator.print();
}
public void setOutputGenerator(Printer outputGenerator){
this.outputGenerator = outputGenerator;
}
}
XML配置
然后我们要创建一个Spring bean配置文件并在此处声明所有Java对象依赖关系。
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标签在Spring配置xml文件中声明了两个Java Bean。
在声明之后,我们可以使用id值来引用Java Bean。
以下xml bean标记声明了OutputHelper和通过使用属性标记通过setter注入注入依赖。
在上面的代码中,我们只是注入一个“com.www.w3cschool.cnmon.CSVPrinter"bean通过setter方法setOutput Generator转换为“Output Helper"对象。
加载配置和运行
以下代码显示如何使用加载配置并运行它。
package com.www.w3cschool.cnmon;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class App {
public static void main(String[] args) {
ApplicationContext context = new ClassPathXmlApplicationContext(
"SpringBeans.xml");
OutputHelper output = (OutputHelper)context.getBean("outputHelper");
output.print();
}
}
输出
Download Java2s_Spring_Setter_Injection.zip