Spring的定时器出现执行两次的问题剖析及解决

解决在用Spring的定时器是出现的执行方法调用两次(实例被构造两次)的问题

今天在优化一个已经上线的项目上要实现一个定时器,其主要作用时为了定时删除一些文件、图片及视频,可是按正常的在web.xml、applicationContext.xml中配置相应的配置完成后启动Tomcat,然后在测试的时候居然我的定时器任务方法执行了两次。
问题所在:配置文件web.xml的配置

<servlet>  
    <servlet-name>mvc-dispatcher</servlet-name>  
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>  
    <init-param>  
        <param-name>contextConfigLocation</param-name>  
        <param-value>classpath:applicationContext.xml</param-value>  
    </init-param>  
    <load-on-startup>1</load-on-startup>  
    <async-supported>true</async-supported>  
  </servlet>  
    
  <context-param>  
    <param-name>contextConfigLocation</param-name>  
    <param-value>classpath:applicationContext.xml</param-value>  
  </context-param>
SpringMVC中再web.xml中有上面两行代码片,我的定时器配置在applicationContext.xml,在项目启动的时候扫描了两遍配置文件,也就是两个容器中都拿到了定时器。
解决方法:单独把定时器配置在一个新创建的文件spring-timer.xml里面,然后就可以了。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

张小洛

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值