zoukankan      html  css  js  c++  java
  • 【Spring Boot】Spring Boot之五种容器启动后进行相关应用初始化操作方法

    一、方式一,使用ApplicationListener<E extends ApplicationEvent>监听ContextRefreshedEvent事件

    /**
     * @author zhangboqing
     * @date 2019-11-03
     */
    @Component
    public class MyApplicationListener implements ApplicationListener<ContextRefreshedEvent> {
        @Autowired
        private MyService myService;
    
        @Override
        public void onApplicationEvent(ContextRefreshedEvent contextRefreshedEvent) {
            System.out.println(">>>>>>>>>>>>>> ApplicationListener:" + myService.sayHello());
        }
    }

    二、方式二,使用SmartInitializingSingleton

    /**
     * @author zhangboqing
     * @date 2019-11-03
     */
    @Component
    public class MySmartInitializingSingleton implements SmartInitializingSingleton {
        @Autowired
        private MyService myService;
    
        @Override
        public void afterSingletonsInstantiated() {
            System.out.println(">>>>>>>>>>>>>> SmartInitializingSingleton:" + myService.sayHello());
        }
    }

    三、方式三,使用SmartLifecycle

    /**
     * @author zhangboqing
     * @date 2019-11-03
     */
    @Component
    public class MySmartLifecycle implements SmartLifecycle {
    
        @Autowired
        private MyService myService;
    
        @Override
        public void start() {
            System.out.println(">>>>>>>>>>>>>> SmartLifecycle:" + myService.sayHello());
        }
    
        @Override
        public boolean isAutoStartup() {
            return true;
        }
    
        @Override
        public void stop(Runnable callback) {
    
        }
    
        @Override
        public void stop() {
    
        }
    
        @Override
        public boolean isRunning() {
            return false;
        }
    
        @Override
        public int getPhase() {
            return 0;
        }
    }

    四、方式四,使用ApplicationRunner

    /**
     * @author zhangboqing
     * @date 2019-11-07
     */
    @Component
    public class MyApplicationRunner implements ApplicationRunner {
        @Autowired
        private MyService myService;
    
        @Override
        public void run(ApplicationArguments args) throws Exception {
            System.out.println(">>>>>>>>>>>>>> ApplicationRunner:" + myService.sayHello());
        }
    }

    五、方式五,使用CommandLineRunner

    /**
     * @author zhangboqing
     * @date 2019-11-07
     */
    @Component
    public class MyCommandLineRunner implements CommandLineRunner {
    
        @Autowired
        private MyService myService;
    
        @Override
        public void run(String... args) throws Exception {
            System.out.println(">>>>>>>>>>>>>> CommandLineRunner:" + myService.sayHello());
        }
    }
  • 相关阅读:
    2019-10-28-开源项目
    2018-8-10-win10-uwp-MetroLog-入门
    2018-5-20-C#-BBcode-转-Markdown
    2018-8-10-win10-UWP-序列化
    2018-2-13-win10-uwp-BadgeLogo-颜色
    2019-1-25-WPF-ListBox-的选择
    2019-1-5-Windows-的-Pen-协议
    android studio打印
    Java 基本数据类型
    FreeRTOS 任务通知模拟计数型信号量
  • 原文地址:https://www.cnblogs.com/756623607-zhang/p/11789199.html
Copyright © 2011-2022 走看看