亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何玩轉 SpringBoot 2 快速整合 Listener

發布時間:2020-07-15 09:16:07 來源:億速云 閱讀:230 作者:Leah 欄目:編程語言

如何玩轉 SpringBoot 2 快速整合 Listener?針對這個問題,這篇文章詳細介紹了相對應的分析和解答,希望可以幫助更多想解決這個問題的小伙伴找到更簡單易行的方法。

快速演示操作

第一步: 編寫 Listener 并且在 Listener 類上聲明 @WebListener 注解。具體代碼如下:

@WebListener
public class ApplicationListener implements ServletContextListener{
	private Logger log = LoggerFactory.getLogger(ApplicationListener.class);
	
	@Override
	public void contextInitialized(ServletContextEvent sce) {
		log.info("ApplicationListener 監聽器啟動...");
	}
	@Override
	public void contextDestroyed(ServletContextEvent sce) {
		log.info("ApplicationListener 監聽器銷毀...");
	}
}

第二步:通過 JavaConfig 方式將編寫的 ApplicationListener 類注入到 Spring 的上下文中。

將自定義 ApplicationListener 傳入到 ServletListenerRegistrationBean的構造中,然后創建 ServletListenerRegistrationBean Bean實例,具體代碼如下:

@Configuration
public class WebApplicationConfig {
	@Bean
	public ServletListenerRegistrationBean<ApplicationListener>  userServlet(){
		return new ServletListenerRegistrationBean<ApplicationListener> (new ApplicationListener());
	}
}

或者在啟動類上聲明 @ServletComponentScan 注解,具體代碼如下:

@SpringBootApplication
@ServletComponentScan
public class SpringbootExamplesApplication {

	public static void main(String[] args) {
		SpringApplication.run(SpringbootExamplesApplication.class, args);
	}
}

測試

啟動 SpirngBoot 項目會看到在 ApplicationListener 中定義 ApplicationListener 監聽器銷毀… 日志信息。

2019-10-04 00:58:39.361  INFO 5184 --- [  restartedMain] o.s.b.w.servlet.ServletRegistrationBean  : Servlet dispatcherServlet mapped to [/]
2019-10-04 00:58:39.375  INFO 5184 --- [  restartedMain] o.s.b.w.servlet.FilterRegistrationBean   : Mapping filter: 'characterEncodingFilter' to: [/*]
2019-10-04 00:58:39.376  INFO 5184 --- [  restartedMain] o.s.b.w.servlet.FilterRegistrationBean   : Mapping filter: 'hiddenHttpMethodFilter' to: [/*]
2019-10-04 00:58:39.376  INFO 5184 --- [  restartedMain] o.s.b.w.servlet.FilterRegistrationBean   : Mapping filter: 'formContentFilter' to: [/*]
2019-10-04 00:58:39.377  INFO 5184 --- [  restartedMain] o.s.b.w.servlet.FilterRegistrationBean   : Mapping filter: 'requestContextFilter' to: [/*]
2019-10-04 00:58:39.420  INFO 5184 --- [  restartedMain] c.lijunkui.listener.ApplicationListener  : ApplicationListener 監聽器啟動...

在啟動狀態下在此啟動該項目,雖然會報錯但是可以看到在ApplicationListener 中定義銷毀的日志信息輸出。

Caused by: java.net.BindException: Address already in use: bind
	at sun.nio.ch.Net.bind0(Native Method) ~[na:1.8.0_144]
	at sun.nio.ch.Net.bind(Net.java:433) ~[na:1.8.0_144]
	at sun.nio.ch.Net.bind(Net.java:425) ~[na:1.8.0_144]
	at sun.nio.ch.ServerSocketChannelImpl.bind(ServerSocketChannelImpl.java:223) ~[na:1.8.0_144]
	at sun.nio.ch.ServerSocketAdaptor.bind(ServerSocketAdaptor.java:74) ~[na:1.8.0_144]
	at org.apache.tomcat.util.net.NioEndpoint.initServerSocket(NioEndpoint.java:236) ~[tomcat-embed-core-9.0.12.jar:9.0.12]
	at org.apache.tomcat.util.net.NioEndpoint.bind(NioEndpoint.java:210) ~[tomcat-embed-core-9.0.12.jar:9.0.12]
	at org.apache.tomcat.util.net.AbstractEndpoint.start(AbstractEndpoint.java:1108) ~[tomcat-embed-core-9.0.12.jar:9.0.12]
	at org.apache.coyote.AbstractProtocol.start(AbstractProtocol.java:550) ~[tomcat-embed-core-9.0.12.jar:9.0.12]
	at org.apache.catalina.connector.Connector.startInternal(Connector.java:957) ~[tomcat-embed-core-9.0.12.jar:9.0.12]
	... 19 common frames omitted

2019-10-04 01:01:07.860  INFO 7864 --- [  restartedMain] o.apache.catalina.core.StandardService   : Stopping service [Tomcat]
2019-10-04 01:01:07.863  INFO 7864 --- [  restartedMain] c.lijunkui.listener.ApplicationListener  : ApplicationListener 監聽器銷毀...
2019-10-04 01:01:07.876  INFO 7864 --- [  restartedMain] ConditionEvaluationReportLoggingListener :

小結

SpringBoot 中整合 Listener步驟如下:

需要在Listener上聲明 @WebListener

在啟動類上聲明@ServletComponentScan注解或者將

Listener通過ServletListenerRegistrationBean 進行包裝然后通過 JavaConfig

方式將其注入到Spring上下文中。

代碼示例

我本地環境如下:

SpringBoot Version: 2.1.0.RELEASE

Apache Maven Version: 3.6.0

Java Version: 1.8.0_144

IDEA:Spring Tools Suite (STS)

關于如何玩轉 SpringBoot 2 快速整合 Listener問題的解答就分享到這里了,希望以上內容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關注億速云行業資訊頻道了解更多相關知識。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

沂源县| 衡水市| 碌曲县| 金溪县| 卢湾区| 同仁县| 乐昌市| 大化| 平凉市| 泰和县| 余江县| 开远市| 右玉县| 怀远县| 巴东县| 新宁县| 三亚市| 铜陵市| 孙吴县| 稷山县| 永昌县| 阿合奇县| 巩留县| 河北省| 聂拉木县| 永靖县| 正安县| 北宁市| 昌黎县| 忻城县| 永新县| 临潭县| 舒城县| 特克斯县| 德兴市| 平泉县| 汉源县| 阿鲁科尔沁旗| 丁青县| 多伦县| 南漳县|