web.xml中定义的Spring的XML配置文件启动顺序
2016-07-31 02:20
591 查看
在web.xml中定义的Spring的配置文件一般有两个:
1、Spring上下文环境的配置文件:applicationContext.xml
2、SpringMVC配置文件:spring-servlet.xml
加载顺序是:首先加载Spring上下文环境配置文件,然后加载SpringMVC配置文件,并且如果配置了相同的内容,SpringMVC配置文件会被优先使用。
所以这里需要注意一个问题,一定要注意SpringMVC配置文件内容不要把Spring上下文环境配置文件内容覆盖掉。
比如在Spring上下文环境配置文件中先引入service层,然后又加入了事务:
但是在SpringMVC配置文件中却默认引入所有类(当然也包括service层),但是没有加入事务
那么这时事务功能是无法起作用的,也就是代码中加入@Transactional注解是无效的。
所以为了防止这种问题一般是在Spring上下文配置文件中引入所有的类,并且加上事务:
而在SpringMVC配置文件中只引入controller层:
Men were born to be suffering, the pain of struggle, or the pain of regret?
1、Spring上下文环境的配置文件:applicationContext.xml
<context-param> <param-name>contextConfigLocation</param-name> <param-value> classpath:applicationContext.xml </param-value> </context-param>
2、SpringMVC配置文件:spring-servlet.xml
<servlet> <servlet-name>spring</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <init-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:spring-servlet.xml</param-value> </init-param> <load-on-startup>1</load-on-startup> </servlet>
加载顺序是:首先加载Spring上下文环境配置文件,然后加载SpringMVC配置文件,并且如果配置了相同的内容,SpringMVC配置文件会被优先使用。
所以这里需要注意一个问题,一定要注意SpringMVC配置文件内容不要把Spring上下文环境配置文件内容覆盖掉。
比如在Spring上下文环境配置文件中先引入service层,然后又加入了事务:
<context:component-scan base-package="com.acms.service"></context:component-scan> <!-- define the transaction manager --> <bean id="transactionManagerOracle" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"> <property name="dataSource" ref="dataSourceOracle" /> </bean> <tx:annotation-driven transaction-manager="transactionManagerOracle" />
但是在SpringMVC配置文件中却默认引入所有类(当然也包括service层),但是没有加入事务
<context:component-scan base-package="com.acms"></context:component-scan>
那么这时事务功能是无法起作用的,也就是代码中加入@Transactional注解是无效的。
所以为了防止这种问题一般是在Spring上下文配置文件中引入所有的类,并且加上事务:
<context:component-scan base-package="com.acms"></context:component-scan>
<!-- define the transaction manager -->
<bean id="transactionManagerOracle"
class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="dataSourceOracle" />
</bean>
<tx:annotation-driven transaction-manager="transactionManagerOracle" />
而在SpringMVC配置文件中只引入controller层:
<context:component-scan base-package="com.acms.controller" /> <context:component-scan base-package="com.acms.*.controller" />
Men were born to be suffering, the pain of struggle, or the pain of regret?
相关文章推荐
- web.xml中定义的Spring的XML配置文件启动顺序
- web.xml文件中配置(servlet, spring, filter, listenr)的加载顺序 研究
- web.xml文件中配置(servlet, spring, filter, listenr)的加载顺序
- spring web.xml配置服务启动后执行文件
- web.xml文件中配置(servlet, spring, filter, listenr)的加载顺序(一)
- web.xml文件中配置( listenr, filter,servlet, spring)的加载顺序 研究(转)
- web.xml文件加载顺序 一、 1 、启动一个 WEB 项目的时候, WEB 容器会去读取它的配置文件 web.xml ,读取 <listener> 和 <context-param>
- web.xml文件中的配置启动顺序
- web.xml文件中配置(servlet, spring, filter, listenr)的加载顺序研究
- web.xml文件中配置(servlet, spring, filter, listenr)的加载顺序 研究
- web.xml文件中配置(servlet, spring, filter, listenr)的加载顺序 研究
- 关于web.xml启动spring容器的配置文件的建议
- web.xml 文件中一般包括 servlet, spring, filter, listenr的配置。那么他们是按照一个什么顺序加载呢?
- 通过web.xml文件自动启动spring容器加载对应的配置文件
- shh整合后web.xml、spring配置文件和struts.xml的内容
- spring配置文件路径修改后web.xml配置
- log4j无日志生成? 我将一个web项目部署在tomcat server.xml配置文件中,当我启动tomcat是无日志输出。
- [spring]Spring MVC web.xml 配置文件配置
- spring多个配置文件web.xml写法
- web.xml集成Spring,Struts配置文件说明