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