1. 程式人生 > >伺服器啟動後需要執行一次額外任務

伺服器啟動後需要執行一次額外任務

1、實現Tomcat啟動完畢後啟動一個任務
①、使用監聽器完成,弊端 無法使用spring的註解完成依賴注入。監聽器優先於spring容器載入前執行。
java類實現ServletContextListener,ServletContextAttributeListener 介面

import javax.servlet.ServletContextAttributeEvent;
import javax.servlet.ServletContextAttributeListener;
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
public
class InitListenerMessage implements ServletContextListener, ServletContextAttributeListener { private Logger logger = org.slf4j.LoggerFactory.getLogger(InitListenerMessage.class); @Override public void contextInitialized(ServletContextEvent sce) { logger.info("**** Servlet 初始化載入"
); } }

在web.xml配置相應的監聽

    <listener> 
        <listener-class>com.listener.InitListenerMessage</listener-class> 
    </listener> 

②使用spring 的init-method實現容器載入bean的時候自動呼叫該初始化方法,該設定可以實現spring的依賴注入。

<!-- 初始化載入 -->
    <bean init-method="contextInitialized" class
="com.listener.InitSpringListener">
public class InitSpringListener{
    @Autowired
    private InitScheduleRunnable initRunnable;
    Logger logger = org.slf4j.LoggerFactory.getLogger(InitSpringListener.class);
    public void contextInitialized() {
        logger.info("**************** Spring 初始化載入**************"+initRunnable);
    }
}