SpringBoot 多环境配置与启动 banner 修改

SpringBoot 启动时默认会打印一个 Spring 字符图案。我们可以自定义这个 banner。

操作步骤:

  1. 生成自定义 Banner:

    • 有很多在线网站可以生成字符图案/艺术字。
    • 例如:搜索 "Spring Boot banner generator"。
  2. 配置 Banner:

    • 在项目的 src/main/resources 目录下,创建一个名为 banner.txt 的文件。
    • 将生成好的字符图案复制到 banner.txt 文件中。
  3. 验证效果:

    • 重启应用,控制台输出的启动图案就会变成你自定义的 banner。
    • 提示: 使用 AI 工具(如 ChatGPT)也可以轻松生成各种风格的 banner 文本。

二、高级功能:多环境配置 (Profile)

在开发中,不同环境(开发、测试、生产)的配置(如端口号、数据库连接)通常不同。手动修改配置文件既麻烦又容易出错。SpringBoot 提供了 Profile 机制来解决这个问题。

目标: 实现开发环境和生产环境使用不同的配置。

操作步骤:

  1. 创建多个配置文件:

    • 命名格式:application-{profile}.yml (或 .properties)。
    • 例如,我们创建两个文件:
      • application-dev.yml (开发环境)
      • application-prod.yml (生产环境)
  2. 编写环境特定配置:

    • application-dev.yml 中设置开发环境端口,例如 8080:
    yaml 复制代码
    server:
      port: 8080
    • application-prod.yml 中设置生产环境端口,例如 9090:
    yaml 复制代码
    server:
      port: 9090
  3. 在主配置中激活环境:

    • application.yml 中,使用 spring.profiles.active 参数来指定激活哪个配置文件。
    • 例如,激活开发环境:
    yaml 复制代码
    spring:
      profiles:
        active: dev # 这里写配置文件的 - 后面的名字
    • 这样,应用启动时就会加载 application-dev.yml 中的配置。
  4. 动态切换与验证:

    • 验证开发环境:
      • 设置 active: dev,重启应用。
      • 访问 http://localhost:8080,成功。
      • 访问 http://localhost:9090,失败。
    • 验证生产环境:
      • 修改 active: prod,重启应用。
      • 访问 http://localhost:8080,失败。
      • 访问 http://localhost:9090,成功。

三、核心总结

功能 核心要点 好处
自定义 Banner src/main/resources 下创建 banner.txt 文件 个性化启动界面,提升项目辨识度。
多环境配置 (Profile) 1. 创建 application-xxx.yml 文件 2. 在 application.yml 中通过 spring.profiles.active: xxx 激活 解耦配置,实现环境隔离。只需修改一个激活参数,即可切换整套配置,避免手动修改错误,非常灵活和高级。

通过这种方式,我们可以优雅地管理不同环境的配置,极大地提升了开发和部署的效率与可靠性。

相关推荐
fliter1 小时前
用 Rust 解析并生成 ICMP 包:checksum、nom 与 cookie-factory
后端
蝎子莱莱爱打怪1 小时前
XZLL-IM干货系列 03|消息 ID 设计:一个 UUID 搞不定的事,我用两个 ID 解决了
后端·面试·开源
fliter1 小时前
从 panic 到 Result:用 Rust 重新整理一个 ping 项目的错误处理
后端
森蓝情丶2 小时前
我给 AI 搭了个法庭:一个前端仔的 LangGraph 实战全记录
前端·后端
JensCS猿2 小时前
从 Spring Boot 回看 SSM 框架:手动挡与自动挡的驾驶哲学
后端
爱勇宝2 小时前
干了近 8 年,一夜之间被裁:AI 时代,程序员最该害怕的不是 AI
前端·后端·程序员
科米米2 小时前
嵌入式日志模块
后端
血小溅2 小时前
三大 AI 编码框架深度对比:GSD vs OpenSpec vs Superpowers
人工智能·后端
ThanksGive2 小时前
层级时间轮看门狗
后端
GetcharZp3 小时前
告别繁琐命令行!这款容器可视化神器,让 Docker/K8s 管理变得如此简单
后端