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

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);
    }
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章