SpringBoot引入监听器

方法一:

实现ServletContextListener ,并添加@WebListener注解

因为ServletContextListener 是由servlet容器管理,游离于spring容器之外,所有不能直接使用spring注入的Bean

要想直接使用注入的Bean,需要使用WebApplicationContextUtils类来实现

@WebListener
public class MyServletListener implements ServletContextListener {
    @Override
    public void contextInitialized(ServletContextEvent sce) {
        System.err.println("监听器启动。。。。");

          WebApplicationContext context = WebApplicationContextUtils.getWebApplicationContext(sce.getServletContext());
          ChatService chatService = (ChatService) context.getBean("chatService");

} @Override public void contextDestroyed(ServletContextEvent sce) { } }

同时在主启动类上添加@ServletComponentScan注解扫描

@SpringBootApplication
@ServletComponentScan("com.app.history_sync.listener")
public class DemoApplication {

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

    }

}

方法二:

实现ApplicationListener,这种方式要依赖spring

public class ApplicationReadyListener implements ApplicationListener<ApplicationReadyEvent> {
    @Autowired
    private ChatService chatService;
    @Override
    public void onApplicationEvent(ApplicationReadyEvent event) {
        System.err.println("ApplicationReadyListener......");
    }
}

同时在主启动类引入自定义的ApplicationReadyListener 

@SpringBootApplicationpublic class HistorySyncApplication {

    public static void main(String[] args) {
        ApplicationReadyListener readyListener = new ApplicationReadyListener();
        SpringApplication application = new SpringApplication(HistorySyncApplication.class);
        application.addListeners(readyListener);
        application.run(args);
     //   SpringApplication.run(HistorySyncApplication.class, args);

    }

}

 

转载于:https://www.cnblogs.com/chentop/p/10945906.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值