java spring将xml配置文件拆分的方法

spring | 2019-09-13 10:02:39

在项目中一般xml配置比较多,尤其将struts,hibernate 都交给spring管理的情况下,applicationContext.xml内容较多,查看困难。为了方便我按action,service,dao分各种类,把applicationContext.xml分开了,主要是根据不同的层拆分。
1.先看看我是怎么分的:

1.jpg


2.xml配置说明
我将applicationContext.xml配置中的bean分开了放在applicationContext中的action.xml、dao.xml和services.xml中。

web.xml配置:

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="3.0" 
        xmlns="http://java.sun.com/xml/ns/javaee" 
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
        xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
        http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd">
  <display-name></display-name>        
  <welcome-file-list>
    <welcome-file>index.jsp</welcome-file>
  </welcome-file-list>
  
  <filter>
          <filter-name>struts2</filter-name>
          <filter-class>
                  org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
          </filter-class>
  </filter>
  <filter-mapping>
          <filter-name>struts2</filter-name>
          <url-pattern>*.action</url-pattern>
  </filter-mapping>
  
  <context-param>
          <param-name>contextConfigLocation</param-name>  
    <param-value>/WEB-INF/applicationContext.xml,/WEB-INF/applicationContext/*</param-value> 
  </context-param>
  <listener>
    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
  </listener>
  
</web-app>

其中最重要的就是下面的,告诉spring配置文件包含哪些。

<context-param>
          <param-name>contextConfigLocation</param-name>  
    <param-value>/WEB-INF/applicationContext.xml,/WEB-INF/applicationContext/*</param-value> 
  </context-param>

applicationContext.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans
        xmlns="http://www.springframework.org/schema/beans"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xmlns:aop="http://www.springframework.org/schema/aop"
        xmlns:tx="http://www.springframework.org/schema/tx"
        xmlns:p="http://www.springframework.org/schema/p"
        xsi:schemaLocation="http://www.springframework.org/schema/beans 
        http://www.springframework.org/schema/beans/spring-beans-3.1.xsd
        http://www.springframework.org/schema/aop
        http://www.springframework.org/schema/aop/spring-aop-3.1.xsd
        http://www.springframework.org/schema/tx
        http://www.springframework.org/schema/tx/spring-tx-3.1.xsd"
        default-autowire="byName">
        <!-- 数据库配置 -->
        <bean id="dataSource"
                class="org.apache.commons.dbcp.BasicDataSource">
                <property name="driverClassName"
                        value="com.mysql.jdbc.Driver">
                </property>
                <property name="url" value="jdbc:mysql://localhost:3306/oa?characterEncoding=utf-8"></property>
                <property name="username" value="root"></property>
                <property name="password" value="mysql"></property>
        </bean>
        <!-- 事务回滚 -->        
        <bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager"></bean>
        <tx:advice id="txAdvice" transaction-manager="transactionManager">
                <tx:attributes>
                        <tx:method name="*" propagation="REQUIRED" />
                </tx:attributes>
        </tx:advice>
        <aop:config>
                <aop:pointcut id="allDaoMethod" expression="execution(* service.*.*(..))" />
                <aop:advisor advice-ref="txAdvice" pointcut-ref="allDaoMethod" />
        </aop:config>
        
</beans>

action.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans
        xmlns="http://www.springframework.org/schema/beans"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xmlns:p="http://www.springframework.org/schema/p"
        xsi:schemaLocation="http://www.springframework.org/schema/beans
        http://www.springframework.org/schema/beans/spring-beans-3.1.xsd"
        default-autowire="byName">
        
        <!-- action -->
        <bean id="test" class="action.Test" scope="prototype" />
        
        
</beans>

dao.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans
        xmlns="http://www.springframework.org/schema/beans"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xmlns:p="http://www.springframework.org/schema/p"
        xsi:schemaLocation="http://www.springframework.org/schema/beans
        http://www.springframework.org/schema/beans/spring-beans-3.1.xsd"
        default-autowire="byName">
        
        <bean id="sessionFactory" class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">
                <property name="dataSource">
                        <ref bean="dataSource" />
                </property>
                <property name="hibernateProperties">
                        <props>
                                <prop key="hibernate.dialect">
                                        org.hibernate.dialect.MySQLDialect
                                </prop>
                                <prop key="hibernate.hbm2ddl.auto">validate</prop>
                        </props>
                </property>
                <property name="mappingResources">
                        <list>
                                <!-- <value>dao/user/User.hbm.xml</value> -->
                        </list>
                </property>
        </bean>
        
        <!-- dao -->
        <!--<bean id="userDAO" class="dao.user.UserDAO">
                <property name="sessionFactory">
                        <ref bean="sessionFactory" />
                </property>
        </bean>-->
        
        
</beans>

services.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans
        xmlns="http://www.springframework.org/schema/beans"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xmlns:p="http://www.springframework.org/schema/p"
        xsi:schemaLocation="http://www.springframework.org/schema/beans
        http://www.springframework.org/schema/beans/spring-beans-3.1.xsd"
        default-autowire="byName">
        
        <!-- services -->
        <!--<bean id="userService" class="service.UserService" />-->
</beans>


登录后即可回复 登录 | 注册
    
关注编程学问公众号