Spring3系列2-松耦合的实现

1、      环境

spring-framework-3.2.4.RELEASEjava

jdk1.7.0_11spring

Maven3.0.5eclipse

eclipse-jee-juno-SR2-win32this

 

此例没必要重复建立项目,上接Spring3-Example项目。code

2、      pom.xml文件配置

与前一个项目Spring3-Example中的pom.xml文件一致,没必要修改。xml

3、      建立输出类Output Generator类

假设你的项目须要输出到CVS或者JSON,建立如下类。blog

文件1:IOutputGenerator.java  一个output接口接口

package com.lei.demo.loosely_coupled;

public interface IOutputGenerator {
    public void generateOutput();

}

 

文件2:CsvOutputGenerator.java  CVS输出,实现了IOutputGenerator接口ip

 

 
package com.lei.demo.loosely_coupled;

public class CsvOutputGenerator implements IOutputGenerator {

    public void generateOutput() {
        System.out.println("输出CsvOutputGenerator生成  Output......");
    }

}
 

 

文件3:JsonOutputGenerator.java  JSON输出,实现了IOutputGenerator接口get

 
package com.lei.demo.loosely_coupled;

public class JsonOutputGenerator implements IOutputGenerator {

    public void generateOutput() {
        System.out.println("输出JsonOutputGenerator生成  Output......");
    }

}
 

 

4、      用Spring依赖注入调用输出

用Spring的松耦合实现输出相应的格式。

首先建立一个须要用到输出的类OutputHelper.java

 

 
package com.lei.demo.loosely_coupled;

public class OutputHelper {
    IOutputGenerator outputGenerator;
    
    public void generateOutput(){
        this.outputGenerator.generateOutput();
    }
    
    public void setOutputGenerator(IOutputGenerator outputGenerator){
        this.outputGenerator = outputGenerator;
    }
}
 

 

5、      建立一个spring配置文件用于依赖管理

src/main/resources下建立配置文件Spring-Output.xml。

 
<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-3.0.xsd">
 
     <bean id="OutputHelper" class="com.lei.demo.loosely_coupled.OutputHelper">
        <property name="outputGenerator" ref="CsvOutputGenerator" />
    </bean>
    
    <bean id="CsvOutputGenerator" class="com.lei.demo.loosely_coupled.CsvOutputGenerator" />
    <bean id="JsonOutputGenerator" class="com.lei.demo.loosely_coupled.JsonOutputGenerator" />
 
</beans>
 

 

 

6、      经过Spring调用相应的output

App.java类

 
package com.lei.demo.loosely_coupled;

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

public class App {
    private static ApplicationContext context;

    public static void main(String[] args){
        context = new ClassPathXmlApplicationContext(new String[] {"Spring-Output.xml"});
         
        OutputHelper output = (OutputHelper)context.getBean("OutputHelper");
        output.generateOutput();
    }
}
 

 

 

如今,已经实现了松耦合,当须要输出改变时,没必要修改任何代码.java文件,只要修改Spring-Output.xml文件<property name="outputGenerator" ref="CsvOutputGenerator" />中的ref值,就能够实现输出不一样的内容,不修改代码就减小了出错的可能性。

 

7、      目录结构

 

8、      运行结果

运行以上App.java,“输出CsvOutputGenerator生成  Output......”,结果以下图

 

相关文章
相关标签/搜索