1.创建项目,项目名称(springdemo2),如图所示

2.在项目中创建相应的目录(lib->jar包目录,src->源码目录,test->测试目录),目录结构如图所示

3.在lib目录中创建子目录(apache,junit,spring)存储相应的jar包,如图所示

4.分别在apache,junit,spring中添加对应的jar包,如图所示

5.对jar包进行build path,build path的过程如果不会请参照()这篇文章,jar build后目录

如图所示

6.在src源码目录下创建接口IOutputGenerator,包名(main.java.com.mycompany.service),如图所示

7.接口IOutputGenerator的内容如下

package main.java.com.mycompany.service;public interface IOutputGenerator {	public void generateOutput();}

8.在src源码目录中创建接口IOutputGenerator的两个实现类CsvOutputGenerator,JsonOutputGenerator,包名(main.java.com.mycompany.service.impl),如图所示

9.实现类CsvOutputGenerator的内容如下

package main.java.com.mycompany.service.impl;import main.java.com.mycompany.service.IOutputGenerator;public class CsvOutputGenerator implements IOutputGenerator {	@Override	public void generateOutput() {		System.out.println("Csv Output Generator");	}}

10.实现类JsonOutputGenerator的内容如下

package main.java.com.mycompany.service.impl;import main.java.com.mycompany.service.IOutputGenerator;public class JsonOutputGenerator implements IOutputGenerator{	@Override	public void generateOutput() {		System.out.println("Json Output Generator");	}	}

11.在src源码目录创建操作类OutputHelper,包名(main.java.com.mycompany.util),如图所示

12.操作类OutputHelper的内容如下

package main.java.com.mycompany.util;import main.java.com.mycompany.service.IOutputGenerator;public class OutputHelper {	IOutputGenerator outputGenerator;		public void generateOutput(){		outputGenerator.generateOutput();	}		public void setOutputGenerator(IOutputGenerator outputGenerator){		this.outputGenerator = outputGenerator;	}}

13.在src源码目录创建配置文件applicationContext.xml,如图所示

14.配置文件applicationContext.xml的内容如下

15.在test测试目录中创建测试类OutputHelperTest,包名(main.java.com.mycompany.util),如图所示

16.测试类OutputHelperTest的内容如下

package main.java.com.mycompany.util;import org.junit.Test;import org.springframework.context.ApplicationContext;import org.springframework.context.support.ClassPathXmlApplicationContext;public class OutputHelperTest {		@Test	public void outputHelperTest(){		ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");		OutputHelper output = (OutputHelper) context.getBean("OutputHelper");		output.generateOutput();	}}

17.在outputHelperTest方法上右键运行Run as -> Junit Test,运行结果如图所示

18.修改applicationContext.xml文件,如图所示

19.修改applicationContext.xml文件的内容如下

20.再运行OutputHelperTest类中的outputHelperTest方法,如图所示

21.在没有对代码进行任何的修改情况下,只修改了applicationContext.xml文件,则切换了接口的不同实现方式.