Springboot的日常操作技巧

文章目录


1、自定义横幅

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

也可以使用代码

java 复制代码
@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. 先检查是否有横幅图片文件,.jpg.phg这样的
  2. 在检查banner.text文件
  3. 最后检查代码配置的文件

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

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

java 复制代码
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));
    }
}

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

结果示例

Spring启动容器好会调用callRunners(context, applicationArguments); 方法

这个方法扫描了实现 这两个接口的类

java 复制代码
		runners.addAll(context.getBeansOfType(ApplicationRunner.class).values());
		runners.addAll(context.getBeansOfType(CommandLineRunner.class).values());
CommandLineRunner

第一步 定义方法,

java 复制代码
/**
 * 容器启动后方法
 *
 * @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完成应用启动好方法。。。。。滴滴滴 ");

    }
}

第二步 不要忘记注解

主类上也要加入注解 (扫描配置)

java 复制代码
@ComponentScan(basePackages = "com.gateway.demo.customizable")
ApplicationRunner

和上面基本一样

java 复制代码
/**
 * 容器启动后方法
 *
 * @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完成应用启动好方法。。。。。滴滴滴 ");

    }
}

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

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

根据具体需求,如果任务与命令行参数相关,就使用 CommandLineRunner

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

不定时增加

参考文章

个人笔记,不同意见,望有交流

直接可以点击跳转连接

GPT3.5 感谢全网作者

相关推荐
肩塔didi13 分钟前
用 Pixi 管理 Python 项目:打通Conda 和 PyPI 的边界
后端·python·github
岁忧16 分钟前
(LeetCode 面试经典 150 题) 104. 二叉树的最大深度 (深度优先搜索dfs)
java·c++·leetcode·面试·go·深度优先
麦兜*17 分钟前
内存杀手机器:TensorFlow Lite + Spring Boot移动端模型服务深度优化方案
java·人工智能·spring boot·spring cloud·ai·tensorflow·ai编程
dylan_QAQ28 分钟前
【附录】相对于BeanFactory ,ApplicationContext 做了哪些企业化的增强?
后端·spring
夏小花花29 分钟前
Java 日常开发笔记(小程序页面交互传参-id)
java·微信小程序·vue
唐诗41 分钟前
VMware Mac m系列安装 Windws 11,保姆级教程
前端·后端·github
小浣浣44 分钟前
Java 后端性能优化实战:从 SQL 到 JVM 调优
java·sql·性能优化
没有bug.的程序员1 小时前
《常见高频算法题 Java 解法实战精讲(1):链表与数组》
java·算法·链表·数组
Lx3521 小时前
Hadoop新手必知的10个高效操作技巧
hadoop·后端
写bug写bug1 小时前
搞懂Spring任务执行器和调度器模型
java·后端·spring