ServletContextListener獲取spring注入的bean,偵聽器、過濾器等不歸Spring容器託管,無法用註解注入!!!

監聽器代碼如下:

package com.bocean.timer;

import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;

import com.bocean.service.eqpt.ICareNovaEqptService;
import com.bocean.socket.BosEqptServer;
import org.springframework.web.context.WebApplicationContext;
import org.springframework.web.context.support.WebApplicationContextUtils;

import com.bocean.service.mcenter.IRandCardService;

import java.io.IOException;

/**
 *@User only29
 *@Date 2014-11-24
 *@Time 上午10:35:48
 *
 */
public class TaskJobListener implements ServletContextListener {

	private static WebApplicationContext context;
	private ICareNovaEqptService service;

	@Override
	public void contextInitialized(ServletContextEvent event) {
		event.getServletContext().log("TaskJobListener啓動成功!");
		event.getServletContext().log("定時器已啓動");
		//獲取spring上下文環境
		context = WebApplicationContextUtils.getWebApplicationContext(event.getServletContext());
		service = (ICareNovaEqptService) context.getBean("careNovaEqptServiceImpl");
		try {
			new BosEqptServer().setService(service).start();
		} catch (IOException e) {
			e.printStackTrace();
		}
		event.getServletContext().log("定時器執行完");
	}

	@Override
	public void contextDestroyed(ServletContextEvent event) {
		event.getServletContext().log("TaskJobListener銷燬成功!");
	}
	

}

web.xml配置

<!-- 定時器監聽 放在ContextLoaderListener之後 -->
	<listener>
		<listener-class>com.bocean.timer.TaskJobListener</listener-class>
	</listener>



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章