`
seadragonnj
  • 浏览: 57271 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

记录之spring

阅读更多

如果要在spring所有bean装载完成之后调用某段代码时,可以让一个bean实现接口:

org.springframework.context.ApplicationListene

然后实现他的

public void onApplicationEvent(ApplicationEvent event) 

 方法

官方文档说:

 那么每当一个ApplicationEvent 发布到ApplicationContext 时,这个bean就得到通知。实质上,这是标准的Observer 设计模式。

事件有很多种,这里就不列出来了,想了解可以去看文档,在我的这种需求下,要捕获ContextRefreshedEvent事件,然后做你想做的事情:

public void onApplicationEvent(ApplicationEvent event) {
		if(event instanceof ContextRefreshedEvent){
			Runnable t = new Runnable() {

				@Override
				public void run() {
					long starttime = System.currentTimeMillis();
					dispenseFeed.despense();
					while (true) {
						long curtime = System.currentTimeMillis();
						if (curtime - starttime > 20000) {
							System.out.println("分发开始");
							dispenseFeed.despense();
							starttime = curtime;
							try {
								Thread.sleep(1000);
							} catch (InterruptedException e) {
								e.printStackTrace();
							}
						}
					}

				}
			};
			Thread runnablet=new Thread(t);
			runnablet.start();
			System.out.println("线程起动");
		}
	}
 
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics