SpringBoot2.0 監聽器ApplicationListener的使用-監聽ApplicationReadyEvent事件


參考:http://www.shareniu.com/article/73.htm

一.需求是想將我的寫一個方法能在項目啟動后就運行,之前使用了redis的消息監聽器,感覺可以照着監聽器這個思路做,於是想到了sringboot的監聽器

二.目前spring boot中支持的事件類型如下

  1. ApplicationFailedEvent:該事件為spring boot啟動失敗時的操作

  2. ApplicationPreparedEvent:上下文context准備時觸發

  3. ApplicationReadyEvent:上下文已經准備完畢的時候觸發

  4. ApplicationStartedEvent:spring boot 啟動監聽類

  5. SpringApplicationEvent:獲取SpringApplication

  6. ApplicationEnvironmentPreparedEvent:環境事先准備

三.監聽器的使用

第一:首先定義一個自己使用的監聽器類並實現ApplicationListener接口。

@Componen
public class MessageReceiver implements ApplicationListener<ApplicationReadyEvent> { private Logger logger = LoggerFactory.getLogger(MessageReceiver.class); private UserService userService = null; @Override public void onApplicationEvent(ApplicationReadyEvent event) { ConfigurableApplicationContext applicationContext = event.getApplicationContext();      //解決userService一直為空      userService = applicationContext.getBean(UserService.class);
     System.out.println("name"+userService.getName()); } }

第二:通過SpringApplication類中的addListeners方法將自定義的監聽器注冊進去

public class Application {
    public static void main(String[] args) {
        SpringApplication application = new SpringApplication(Application.class);
        application.addListeners(new MessageReceiver());
        application.run(args);
    
    }
}

啟動項目

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM