使用import簡化spring的配置文件 (轉載)

Spring中用import導入配置文件
原文地址:使用import簡化spring的配置文件 (轉載)做者:瓦礫
對於spring配置文件的編寫,我想,對於經歷過龐大項目的人,都有那種恐懼的心理,太多的配置文件。不過,分模塊都是大多數人能想到的方法,可是,怎麼分模塊,那就是仁者見仁,智者見智了。個人策略是使用import。
基本代碼格式以下
web.xml     ......
    <context-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>
             /WEB-INF/spring-config/applicationContext.xml
        </param-value>
    </context-param>
     ......
web.xml文件中只需制定一個文件在/WEB-INF/spring-config/目錄下包含了全部spring配置文件,包括一個總配置文件,以及各個模塊的配置文件applicationContext.xml<?xml version="1.0" encoding="gb2312"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
<beans>web

    <import resource="CTIContext.xml" />
    <import resource="customerContext.xml" />
    <import resource="customerServingContext.xml" />
    <import resource="manageContext.xml" />
    <import resource="routineContext.xml" />
    <import resource="systemContext.xml" />
     ...........
    包括數據源,以及事務的基本配置
     ...........
     這時全部DAO的基類,各個模塊的DAO都配置成繼承這個類,就省去了在配置sessionFactory的麻煩
    <!-- Base DAO -->
    <bean id="baseDAO" abstract="true"
         class="com.mycompany.myproject.framework.BaseDAOImpl">
        <property name="sessionFactory">
            <ref bean="sessionFactory" />
        </property>
    </bean>spring

</beans>
applicationContext.xml文件中使用import的方式導入有模塊配置文件,之後如有新模塊的加入,那就能夠簡單修改這個文件了system模塊配置文件<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">session

<beans>app

    <!-- DAO -->
    <bean id="userDAO" parent="baseDAO"
         class="com.mycompany.myproject.module.system.dao.UserDAOImpl">
        <constructor-arg>
            <value>com.mycompany.myproject.domain.system.User</value>
        </constructor-arg>
    </bean>dom

    <bean id="agentDAO" parent="baseDAO"
         class="com.mycompany.myproject.module.system.dao.AgentDAOImpl">
        <constructor-arg>
            <value>com.mycompany.myproject.domain.system.Agent</value>
        </constructor-arg>
    </bean>單元測試

    <bean id="agentGroupDAO" parent="baseDAO"
         class="com.mycompany.myproject.module.system.dao.AgentGroupDAOImpl">
        <constructor-arg>
            <value>
                 com.mycompany.myproject.domain.system.AgentGroup
            </value>
        </constructor-arg>
    </bean>測試

    <!-- Service -->
    <bean id="userService" parent="baseTransactionProxy">
        <property name="target">
            <bean
                class="com.mycompany.myproject.module.system.service.UserServiceImpl">
                <property name="userDAO" ref="userDAO" />
            </bean>
        </property>
    </bean>xml

</beans>
能夠仔細看這個文件是怎麼使用spring中abstract的方式申明繼承關係的。我看到有很多人採用spring自帶的策略,把DAO與service層的配置分開,我認爲這種策略很差,由於大多數時候,這兩部分都是須要同時變更的,若放在兩個文件中的話,那就會增長了每次修改配置文件的時間,並且,不利於重用。如果結合個人上篇文章(關於spring單元測試的)的策略,那麼這種方式就會發揮更大的威力繼承

相關文章
相關標籤/搜索