伺服器啟動後需要執行一次額外任務
阿新 • • 發佈:2019-01-10
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);
}
}