SpringBoot中的ApplicationListener事件監(jiān)聽器使用詳解
ApplicationListener
ApplicationListener是應用程序的事件監(jiān)聽器,繼承自java.util.EventListener標準接口,采用觀察者設計模式。
從spring3.0開始,ApplicationListener可以指定要監(jiān)聽的事件類型,當spring的上下文環(huán)境ApplicationContext時,當指定事件發(fā)布的時候,對應事件的事件監(jiān)聽器將被調(diào)用。
使用ApplicationListener需要三元素,事件,監(jiān)聽,事件發(fā)布。
ApplicationListener應用
1.新建事件
繼承自ApplicationEvent .
public class TestApplicationEvent extends ApplicationEvent { /** * Create a new ApplicationEvent. * * @param test the object on which the event initially occurred (never {@code null}) */ public TestApplicationEvent(TestApplication test) { super(test); } }
2.新建監(jiān)聽器
實現(xiàn)ApplicationListener指定要監(jiān)聽的事件類型,監(jiān)聽器必須注入容器當中可以使用注解方式(例如:@Component),或者在資源路徑下新建META-INF/spring.factories文件導入
@Component public class TestApplicationListener implements ApplicationListener<TestApplicationEvent> { @Override public void onApplicationEvent(TestApplicationEvent event) { System.out.println(event.getSource()); } }
3.事件發(fā)布
當spring應用上下文環(huán)境初始化完畢,進行事件的發(fā)布
@SpringBootApplication public class CommonsTestApplication { public static void main(String[] args) { ConfigurableApplicationContext applicationContext = SpringApplication .run(CommonsTestApplication.class, args); TestApplication testApplication = new TestApplication(); testApplication.setName("zhangsan"); testApplication.setAge(23); TestApplicationEvent testApplicationEvent = new TestApplicationEvent(testApplication); applicationContext.publishEvent(testApplicationEvent);//事件發(fā)布時,指定的監(jiān)聽器就進行接收 } }
4.啟動程序
當容器初始化完畢后,發(fā)布事件,事件監(jiān)聽器進行接收。
到此這篇關于SpringBoot中的ApplicationListener事件監(jiān)聽器使用詳解的文章就介紹到這了,更多相關ApplicationListener事件監(jiān)聽器使用內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
java byte數(shù)組與int,long,short,byte的轉(zhuǎn)換實現(xiàn)方法
下面小編就為大家?guī)硪黄猨ava byte數(shù)組與int,long,short,byte的轉(zhuǎn)換實現(xiàn)方法。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2016-10-10Tomcat 服務器 在45秒內(nèi)未啟動成功的解決方法
下面小編就為大家?guī)硪黄猅omcat 服務器 在45秒內(nèi)未啟動成功的解決方法。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-11-11Java基于面向?qū)ο髮崿F(xiàn)一個戰(zhàn)士小游戲
這篇文章主要為大家詳細介紹了Java如何基于面向?qū)ο髮崿F(xiàn)一個戰(zhàn)士小游戲,文中的示例代碼講解詳細,感興趣的小伙伴可以動手嘗試一下2022-07-07