• 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");
        }
    
    }

  • 相关阅读:
    HttpModule & HttpHandler
    试图运行项目时出错:无法启动调试 没有正确安装调试器
    DataTable 手动排序 无效的问题解决方法??
    合并多个DLL文件
    恢复mysql方法
    在不同版本的IIS下使用ASP.NET MVC
    Enterprise Library 4.1 October 2008
    去除HTML标记
    Mac相关命令
    Mac常用快捷键
  • 原文地址:https://www.cnblogs.com/yang21/p/9865399.html
Copyright © 2020-2023  润新知