• Springboot的日常操作技巧



    1、自定义横幅

    在这里插入图片描述

    简单就一点你需要把banner.text放到classpath 路径下 ,默认它会找叫做banner的文件,各种格式的都可以 ,但是实际只能输出成符号图形 图片也行但是显示的结果就和下图一样
    在这里插入图片描述
    也可以使用代码

    @SpringBootApplication
    public class GatewayTestApplication {
    
        public static void main(String[] args) {
            SpringApplication springApplication = new SpringApplication(GatewayTestApplication.class);
            springApplication.setBanner((environment, sourceClass, out)->{
                out.println("***************************");
                out.println("* 啦啦啦啦    *");
                out.println("***************************");
            });
            springApplication.run(args);
        }
    
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14

    优先输出自定义横幅

    1. 先检查是否有横幅图片文件,.jpg.phg这样的
    2. 在检查banner.text文件
    3. 最后检查代码配置的文件

    根据顺序优先只显示一个,后面的不会在显示

    2、容器刷新后触发方法自定义

    public class MyApplicationContextInitializer implements ApplicationContextInitializer {
        @Override
        public void initialize(ConfigurableApplicationContext applicationContext) {
            // 在容器刷新完成后执行的操作
            System.out.println("在容器刷新完成后执行的操作");
            // 可以在这里添加任何你需要的初始化逻
            String[] beanDefinitionNames = applicationContext.getBeanFactory().getBeanDefinitionNames();
            System.out.println(Arrays.toString(beanDefinitionNames));
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    在这里插入图片描述

    3、容器启动后触发方法自定义

    结果示例
    在这里插入图片描述

    Spring启动容器好会调用callRunners(context, applicationArguments); 方法
    这个方法扫描了实现 这两个接口的类

    		runners.addAll(context.getBeansOfType(ApplicationRunner.class).values());
    		runners.addAll(context.getBeansOfType(CommandLineRunner.class).values());
    
    • 1
    • 2
    CommandLineRunner

    第一步 定义方法,

    /**
     * 容器启动后方法
     *
     * @author zhangyf
     * @date 2024/3/27 16:15
     */
    
    @Component
    public class MyApplicationContextRunner implements CommandLineRunner {
        @Override
        public void run(String... args) throws Exception {
            System.out.println("测试测试,实现CommandLineRunner完成应用启动好方法。。。。。滴滴滴 ");
    
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15

    第二步 不要忘记注解
    主类上也要加入注解 (扫描配置)

    @ComponentScan(basePackages = "com.gateway.demo.customizable")
    
    • 1
    ApplicationRunner

    和上面基本一样

    /**
     * 容器启动后方法
     *
     * @author zhangyf
     * @date 2024/3/28 15:20
     */
    @Component
    public class MyApplicationContextRunnerA implements ApplicationRunner {
        @Override
        public void run(ApplicationArguments args) throws Exception {
            System.out.println("测试测试,实现ApplicationRunner完成应用启动好方法。。。。。滴滴滴 ");
    
        }
    }
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15

    重点
    ApplicationRunner和CommandLineRunner的区别我这里只说明你需要使用触发方法时的区别

    主要就是参数,应该参数是String 传入的是命令行,另一个是ApplicationArguments对象

    根据具体需求,如果任务与命令行参数相关,就使用 CommandLineRunner
    如果你需要更多的参数信息或者需要执行更通用的任务,就使用 ApplicationRunner 接口。在实践中,两者可以根据需求结合使用。

    不定时增加

    参考文章

    个人笔记,不同意见,望有交流
    直接可以点击跳转连接

    GPT3.5 感谢全网作者

  • 相关阅读:
    一文搞懂Vue3中如何使用ref获取元素节点?
    【三维重建-PatchMatchNet复现笔记】
    ChatGPT付费创作系统V2.8.4独立版 WEB+H5+小程序端 (新增Pika视频+短信宝+DALL-E-3+Midjourney接口)
    Flume原理概述与配置文件编写说明
    解决跨域问题
    【uniapp】使用canvas组件编译到微信小程序兼容出错问题
    微信小程序新手向——界面布局
    vcruntime140.dll重新安装方法,dll修复精灵一键修复dll问题
    RISC-V(2)——特权级及特权指令集
    非对称加密、数字签名JDK实现
  • 原文地址:https://blog.csdn.net/qq_45438019/article/details/137069889