spring 两次进入拦截器_Spring拦截器执行了两次

今天在调试代码的时候,发现有个拦截器被执行了两次,很是奇怪,开始以为是即配置了注解的方式,同时又配置了xml配置文件造成的问题,可是仔细检查后并没有配置注解,只配置了xml文件。

还是采用老办法,在log4j.properties文件中加入如下一句话,打开Spring的日志级别为Info(如果还是看不到有用的调试信息,则把日志级别调整为DEBUG)

log4j.category.org.springframework=INFO, A1, A2

重新启动应用,可以看到后台输出很多以下的信息

INFO  - Overriding bean  definition for bean 'IScheduleService':xxx

INFO  - Overriding bean  definition for bean 'IScheduleService':xxx

……

把输入信息拷贝到editplus中,搜索执行了两次的beanId,可以看到该配置文件被“Overriding”了好几次,读下日志出的源代码,大致可以看到该bean已经被加载,后面的xml中又出现了同样Id的bean,确认应用的配置文件中只有一份这样BeanId的xml文件,所以大胆的猜测是不是同样的xmlbean被加载了两次呢?

找到加载xml的入口代码,我们是采用“ClassPathXmlApplicationContext”来加载配置文件的,其中的通配符如下:

publicstatic String[] XMLFILES = new String[] {

"classpath*:trsconfig/**/*beans.xml", "classpath*:**/*beans.xml",

"/trsconfig/domain/com.trs.enable.aop/enabledAopAnnotation.xml"

红色部分的通配符会出现加载同样xml的问题,注视掉前面部分的通配符,重新启动应用,拦截器只会执行一次了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值