SpringMVC项目(无applicationContext.xml)配置定时器,被实例化两次

J2EE 码拜 9年前 (2016-03-19) 1562次浏览
项目环境:springmvc。但是未分离spring和springmvc的配置文件
定时器:

@Component
public class MyTask {
	@Scheduled(fixedRate = 1000*5)
	public void print(){
		System.out.println("--"+ System.currentTimeMillis() +"--");
	}
}

配置文件:

<context:component-scan base-package="com.xxxxxxx" />
<task:annotation-driven />

原因是是测试效果嘛,所以设置的5秒一次
实际控制台显示效果:

--1463651386859--
--1463651387369--

根据实例化两次的这个结果,本人去看了源码。推断可能是Initializing Spring root WebApplicationContext 这个容器和Initializing Spring FrameworkServlet 这个容器的时候,这个类被扫描实例化了两次。
于是本人在context:component-scan里添加了正则表达式的“例外包”。但是,实际的解决效果不理想。(无效SpringMVC项目(无applicationContext.xml)配置定时器,被实例化两次)。
百度了一下,已有的解决方案,试过,也无效。
假如是spring和springmvc这对子容器和父容器引起的?哪位兄弟遇到过?有什么解决方案么?分出applicationContext.xml?

解决方案

10

http://stackoverflow.com/questions/19826228/spring-web-security-web-xml-mvc-dispatcher-bean-is-created-twice/19850897#19850897

10

等高手助阵,给顶下

20

你猜测是对的 可以看一下 web.xml的配置 和 spring 的 xml配置

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明SpringMVC项目(无applicationContext.xml)配置定时器,被实例化两次
喜欢 (0)
[1034331897@qq.com]
分享 (0)