有時候我們在spring容器啟動完成后,我們需要做一些處理動作,這個時候怎么做呢?
spring提供了事件監聽器的處理機制。
spring提供了內置的幾類的事件:
ContextClosedEvent 、ContextRefreshedEvent 、ContextStartedEvent 、ContextStoppedEvent 、RequestHandleEvent
在spring容器啟動完成后會觸發ContextRefreshedEvent事件。
我們可以創建一個ContextRefreshedEvent事件監聽器。
public class DataSourceInitListener implements ApplicationListener<ContextRefreshedEvent> { protected static final Logger LOGGER = LoggerFactory.getLogger(DataSourceInitListener.class); @SuppressWarnings("unchecked") @Override public void onApplicationEvent(ContextRefreshedEvent ev) { //防止重復執行。 if(ev.getApplicationContext().getParent() == null){ } } }
這個時候我們可以在這里寫相關代碼。