zoukankan      html  css  js  c++  java
  • Spring Boot 5:应用程序启动时初始化资源

    需求:应用程序启动后,初始化基础数据、加密证书等操作。

    可以使用CommandLineRunner接口来实现,在SpringBoot.run()之后完成资源的初始化工作。

    注意:多个Runner需要顺序启动的话,可以使用@Order注解

    package sun.flower.diver.modules.system.init;
    
    import org.springframework.boot.CommandLineRunner;
    import org.springframework.core.annotation.Order;
    import org.springframework.stereotype.Component;
    
    /**
     * 应用程序启动后加载基础数据 Runner
     *
     * @Author YangXuyue
     * @Date 2018/10/28 13:48
     */
    @Component
    @Order(1)
    public class BaseDataRunner implements CommandLineRunner {
        @Override
        public void run(String... strings) throws Exception {
            System.out.println("start init base data");
        }
    }
    package sun.flower.diver.modules.system.init;
    
    import org.springframework.boot.CommandLineRunner;
    import org.springframework.core.annotation.Order;
    import org.springframework.stereotype.Component;
    
    /**
     * 应用程序启动后加载证书 Runner
     *
     * @Author YangXuyue
     * @Date 2018/10/28 13:50
     */
    @Component
    @Order(2)
    public class CertificateRunner implements CommandLineRunner {
        @Override
        public void run(String... strings) throws Exception {
            System.out.println("start init certificate info");
        }
    }
    package sun.flower.diver;
    
    import org.springframework.boot.Banner;
    import org.springframework.boot.SpringApplication;
    import org.springframework.boot.autoconfigure.SpringBootApplication;
    import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
    
    @SpringBootApplication
    // 添加注解 @EnableDiscoveryClient,只有这样,服务注册、心跳检测相关配置信息才能被自动加载
    @EnableDiscoveryClient
    public class DiverApplication {
    
        public static void main(String[] args) {
            System.out.println("application start");
    
            SpringApplication application = new SpringApplication(DiverApplication.class);
            // 添加监听器,此时监听器类不需要标注是一个Bean
            //application.addListeners(new BaseListener());
            application.setBannerMode(Banner.Mode.OFF);
            application.run(args);
    
            System.out.println("application started");
        }
    
    }

  • 相关阅读:
    Python 操作 MySQL 的5种方式
    ffiddler抓取手机(app)https包
    Git远程操作详解(clone、remote、fetch、pull、push)
    Mysql学生课程表SQL面试集合
    Python获取list中指定元素的索引
    python找出字典中value最大值的几种方法
    python sort、sorted高级排序技巧
    JMeter之BeanShell常用内置对象
    Docker从容器拷贝文件到宿主机或从宿主机拷贝文件到容器
    编程必备基础知识|计算机组成原理篇(10):输入输出设备
  • 原文地址:https://www.cnblogs.com/yang21/p/9865399.html
Copyright © 2011-2022 走看看