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);
        }
    }
  • 相关阅读:
    java对象的四种引用:强引用、软引用、弱引用和虚引用
    css引入的两种方法link和@import的区别和用法
    java注解和自定义注解的简单使用
    java代理:静态代理和动态代理
    java设计模式:面向对象设计的7个原则
    java设计模式:概述与GoF的23种设计模式
    java依赖的斗争:依赖倒置、控制反转和依赖注入
    Official Program for CVPR 2015
    Official Program for CVPR 2015
    2013计算机视觉代码合集一
  • 原文地址:https://www.cnblogs.com/yg_zhang/p/9787998.html
Copyright © 2011-2022 走看看