Springboot使用@WebListener?作為web監(jiān)聽器的過程解析
一、使用@WebListener 作為web監(jiān)聽器
1、使用監(jiān)聽器必須在啟動類上添加掃描
@ServletComponentScan
@ServletComponentScan @SpringBootApplication public class Application { public static void main(String[] args) { SpringApplication.run(Application.class); } }
二、Listener的四種注冊方式
1、@WebListener 注解方式
示例1:Session監(jiān)聽器
- @WebListener 本質(zhì)上是事件監(jiān)聽
- HttpSessionListener和HttpSessionAttributeListener都是實現(xiàn)了EventListener接口
@WebListener public class SessionListener implements HttpSessionAttributeListener, HttpSessionListener { // ... ... 省略實現(xiàn)方法 }
示例2:屬性監(jiān)聽器
@WebListener public class ContextListener implements ServletContextAttributeListener,ServletContextListener { // ... ... 省略實現(xiàn)方法 }
2、普通Bean方式
1、創(chuàng)建監(jiān)聽器類
將 Listener 當成一個普通的 spring bean,spring boot 會自動將其包裝為 ServletListenerRegistrationBean
對象
- ServletContextListener 需要實現(xiàn)該接口
- contextInitialized 容器初始化接口
- contextDestroyed 容器銷毀方法
@Component public class BeanContextListener implements ServletContextListener { // ... ... 省略實現(xiàn)方法 }
3、Bean手動注冊方式
1、創(chuàng)建一個配置監(jiān)聽類
ServletContextListener 主動注入
public class ConfigContextListener implements ServletContextListener { // ... .... 省略實現(xiàn)方法 }
2、通過配置監(jiān)聽類將自定義監(jiān)聽類注冊
@Bean public ServletListenerRegistrationBean configContextListener() { ServletListenerRegistrationBean bean = new ServletListenerRegistrationBean(); bean.setListener(new ConfigContextListener()); return bean; }
4、上下文初始化方式
在初始化類中注入監(jiān)聽器
1、創(chuàng)建監(jiān)聽器
public class SelfContextListener implements ServletContextListener { // ... ... 省略實現(xiàn)方法 }
2、 使用上下文添加監(jiān)聽器
@Component public class ExtendServletConfigInitializer implements ServletContextInitializer { @Override public void onStartup(ServletContext servletContext) throws ServletException { servletContext.addListener(SelfContextListener.class); } }
到此這篇關(guān)于Springboot使用@WebListener 作為web監(jiān)聽器的文章就介紹到這了,更多相關(guān)Springboot 使用@WebListener內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Java使用異或運算實現(xiàn)簡單的加密解密算法實例代碼
這篇文章主要介紹了Java使用異或運算實現(xiàn)簡單的加密解密算法實例代碼,具有一定借鑒價值,需要的朋友可以參考下。2017-12-12maven繼承父工程統(tǒng)一版本號的實現(xiàn)
這篇文章主要介紹了maven繼承父工程統(tǒng)一版本號的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2020-08-08SpringBoot2零基礎(chǔ)到精通之JUnit 5與指標監(jiān)控
SpringBoot是一種整合Spring技術(shù)棧的方式(或者說是框架),同時也是簡化Spring的一種快速開發(fā)的腳手架,本篇讓我們一起學習JUnit 5與指標監(jiān)控2022-03-03簡述springboot及springboot cloud環(huán)境搭建
這篇文章主要介紹了簡述springboot及springboot cloud環(huán)境搭建的方法,包括spring boot 基礎(chǔ)應(yīng)用環(huán)境搭建,需要的朋友可以參考下2017-07-07利用Mybatis向PostgreSQL中插入并查詢JSON字段
這篇文章主要介紹了利用Mybatis向PostgreSQL中插入并查詢JSON字段,文章圍繞主題展開詳細的內(nèi)容介紹,具有一定的參考價值,需要的小伙伴可以參考一下2022-07-07解決Eclipse發(fā)布到Tomcat丟失依賴jar包的問題
這篇文章介紹了如何在Eclipse中配置部署裝配功能,以確保在將Web項目發(fā)布到Tomcat服務(wù)器時不會丟失任何依賴jar包,通過手動配置或使用構(gòu)建工具腳本,可以自動化這個過程,提高開發(fā)效率和應(yīng)用程序的穩(wěn)定性,感興趣的朋友跟隨小編一起看看吧2025-01-01