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);
        }
    }
  • 相关阅读:
    批处理基础知识-IF
    在Windows 10 x64 编译ReactOS-0.4.5源码并在VMare中运行
    复制20天以前指定的文件夹、子文件夹和子文件至指定目录
    bat(批处理)命令(tomcat 7.0.75 startup.bat 命令集)
    mycat
    mysql
    5种网络IO模型
    Linux常用命令
    mybatis多参数传递,延迟加载,缓存,注解开发
    事务,mybatis
  • 原文地址:https://www.cnblogs.com/yg_zhang/p/9787998.html
Copyright © 2011-2022 走看看