zoukankan      html  css  js  c++  java
  • springboot 容器启动事件

    在springboot 容器启动时,我们需要在启动过程中做一些操作,比如启动容器后,执行某些代码。

    spring 提供了监听器,我们可以方便的实现这些操作。

    在容器启动开始时:

    package com.neo.filter;
    
    import org.springframework.boot.context.event.ApplicationStartingEvent;
    import org.springframework.context.ApplicationListener;
    
    public class ApplicationStartingEventListener implements ApplicationListener<ApplicationStartingEvent> {
        @Override
        public void onApplicationEvent(ApplicationStartingEvent arg0) {
            System.err.println("ApplicationStartingEventListener");
        }
    
    }

    在容器启动完成后执行操作:

    package com.neo.filter;
    
    import org.springframework.boot.context.event.ApplicationStartedEvent;
    import org.springframework.context.ApplicationListener;
    import org.springframework.core.Ordered;
    
    public class ApplicationStartedEventListener implements ApplicationListener<ApplicationStartedEvent>,Ordered {
    
        @Override
        public void onApplicationEvent(ApplicationStartedEvent ev) {
            System.out.println("ApplicationStartedEventListener1");
        }
        @Override
        public int getOrder() {
            return 1;
        }
    
    }

    如果需要有顺序执行,我们可以实现Ordered接口,只越小,越先执行。

    package com;
    
    
    import org.springframework.boot.SpringApplication;
    import org.springframework.boot.autoconfigure.SpringBootApplication;
    
    import com.neo.filter.ApplicationStartedEventListener;
    import com.neo.filter.ApplicationStartedEventListener2;
    import com.neo.filter.ApplicationStartingEventListener;
    
    @SpringBootApplication
    public class DemoApplication {
    
        public static void main(String[] args) {
            SpringApplication app=new SpringApplication(DemoApplication.class);
            app.addListeners(new ApplicationStartedEventListener());
            app.addListeners(new ApplicationStartingEventListener());
            app.addListeners(new ApplicationStartedEventListener2());
            app.run(args);
        }
    }
  • 相关阅读:
    linux 常用命令行
    二叉搜索树(BST)
    pytorch Gradient Clipping
    python 读写文件
    我终于可以毕业啦!
    为什么有可执行文件还需要库文件
    java常识
    *args、*kwargs
    win终端命令
    import_module
  • 原文地址:https://www.cnblogs.com/yg_zhang/p/9787998.html
Copyright © 2011-2022 走看看