package com.h3.output;
public interface ioutputgenerator
{
public void generateoutput();
}
package com.h3.output.impl;
import com.h3.output.ioutputgenerator;
public class csvoutputgenerator implements ioutputgenerator {
public void generateoutput() {
system.out.println("this is csv output generator");
}
}
package com.h3.output;
import com.h3.output.ioutputgenerator;
public class outputhelper {
ioutputgenerator outputgenerator;
public void generateoutput() {
outputgenerator.generateoutput();
}
//di via setter method
public void setoutputgenerator(ioutputgenerator outputgenerator) {
this.outputgenerator = outputgenerator;
}
}
在这种情况下,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.h3.output.outputhelper"> <property name="outputgenerator" ref="csvoutputgenerator" /> </bean> <bean id="csvoutputgenerator" class="com.h3.output.impl.csvoutputgenerator" /> </beans>
package com.h3.common;
import org.springframework.context.applicationcontext;
import org.springframework.context.support.classpathxmlapplicationcontext;
import com.h3.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