web.xml加载顺序及Spring包扫描注意

本文详细探讨了web.xml配置文件的加载顺序及其在Spring应用中的作用,特别是Spring的包扫描机制。了解这些对于优化应用程序启动时间和避免组件加载冲突至关重要。通过对web.xml中servlet、filter、listener等元素的加载顺序分析,以及Spring中@ComponentScan注解的使用和自定义扫描规则,读者将能更好地掌握这两方面的知识。
摘要由CSDN通过智能技术生成

 

 一、web.xml文件中配置文件加载顺序

web.xml文件中,我们一般会配置一些工程启动时需加载的配置文件.比如:SpringMVC工程开发时,  
我们一般是会有两个xml的配置文件。一个上下文配置文件applicationContext.xml,另一个就是springMVC的配置文件servlet-context.xml文件.
加载顺序:
 1. 服务器启动时,首先会找web.xml文件,加载web.xml文件中配置文件;
 2.找到 web.xml后,首先加载上下文配置文件;也就是<context-param></context- param>标签中初始化文件.其可用通配符的方式指定路径加载多个文件;比如:application*.xml.
 3.加载监听器;<listener>...</listener>
 4.加载过滤器;<filter>...</filter>
 5.加载Servlet;<servlet></servlet>。比如SpringMVC的配置文件servlet-context.xml。

 二. SpringMVC配置事务管理时,@Service,@Controller包文件扫描时配置注意事项:

 1. 当我们在applicationContext.xml中添加了Spring的事务配置,而在servlet-context.xml中添加扫描@service包路径<context:component-scan base-package="**.*.service"
 />时,则当我们在Service中方法添加事务注解时,会发现事务没有起作用.而把<context:component-scan base-package="**.*.service" />放在和事务配置的同一个xml配置文
件时, 就可以了.总的来说就是Service层要在Controller层先被扫描.
 2. 当在applicationContext.xml文件中添加了扫描Service包的路径<context:component-scan base-package="com.cn.service.*" />时,      
    又同时在servlet-context.xml文件中添加扫描<context:component-scan base-package="com.cn.*" />时,Spring事务也不会起作用。因为SpringMVC中配置文件中配置会覆盖
applicationContext.xml中内容.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值