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());
        }
    }
  • 相关阅读:
    跨表修改数据|查询修改数据|两表联合修改数据
    .net oracle 连接
    型材优化截取初步代码
    JQuery.getJSON 从aspx页面返回JSON数据 .
    asp.net form验证
    ASP.NET读取纯真IP数据库QQWry.Dat,得到地址名称
    防止PHP木马,应在PHP.INI里禁止的一些函数
    sqlserver2005中的数据库日志收缩
    jquery.pagination.js分页插件的运用
    ASP.NET前台代码绑定后台变量方法总结
  • 原文地址:https://www.cnblogs.com/756623607-zhang/p/11789199.html
Copyright © 2011-2022 走看看