我在配置SpringMVC定时任务的时候,发现定时任务执行两次,后来查阅资料说是定时任务被初始化了两次。我查阅了很多资料吧,最后是改了tomcat的server.xml,解决的问题。具体如下。
将<Host appBase="webapps" autoDeploy="false" name="localhost" unpackWARs="true">中的appBase="webapps"属性置为空,即appBase=""。可以解决问题。具体原理不详(大意是这个配置appBase和配置定时任务的配置文件都会实例化定时任务,所以导致实例化两次,在后续继续研究中,若有进展我会写在评论下面)。但这样又会有另外一个问题,就是tomcat不受限制可以访问任意路径的文件,因为appBase为空了。所以我又做了如下更改,也能解决实例化两次的问题<Host appBase="D:\SCS_SSH_DEV_ENV\apache-tomcat-7.0.54\webapps" autoDeploy="false" name="localhost" unpackWARs="true">。将appBase的值赋值为绝对路径。但是这又将导致在Linux下或是路径改变的情况下出现问题。但目前我只研究到了这里,以后若有更好的解决方案,我会写在评论上。我还是希望可以抛砖引玉,大家一起想想是否有别的更好的办法!