Spring3系列2 -- 松耦合的實現


Spring3系列2 -- 松耦合的實現

一、      環境

spring-framework-3.2.4.RELEASE

jdk1.7.0_11

Maven3.0.5

eclipse-jee-juno-SR2-win32

 

此例不必重復創建項目,上接Spring3-Example項目。

二、      pom.xml文件配置

與前一個項目Spring3-Example中的pom.xml文件一致,不必修改。

三、      創建輸出類Output Generator類

假設你的項目需要輸出到CVS或者JSON,創建以下類。

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

package com.lei.demo.loosely_coupled;

public interface IOutputGenerator {
    public void generateOutput();

}

 

文件2:CsvOutputGenerator.java  CVS輸出,實現了IOutputGenerator接口

 

package com.lei.demo.loosely_coupled;

public class CsvOutputGenerator implements IOutputGenerator {

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

}

 

文件3:JsonOutputGenerator.java  JSON輸出,實現了IOutputGenerator接口

package com.lei.demo.loosely_coupled;

public class JsonOutputGenerator implements IOutputGenerator {

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

}

 

四、      用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;
    }
}

 

五、      創建一個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>

 

 

六、      通過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值,就可以實現輸出不同的內容,不修改代碼就減少了出錯的可能性。

 

七、      目錄結構

 

八、      運行結果

運行以上App.java,“輸出CsvOutputGenerator生成  Output......”,結果如下圖

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM