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 激活 解耦配置,实现环境隔离。只需修改一个激活参数,即可切换整套配置,避免手动修改错误,非常灵活和高级。

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

相关推荐
考虑考虑12 小时前
cmd局部设置java变量
运维·后端·自动化运维
benbenAItalk12 小时前
数字人口播视频的批量生产实践:素材规范、任务编排与质量验收
java·前端·音视频
sunshine22 girl12 小时前
Java学习二 基本语法2, 算术运算符
java·学习
niucloud-admin13 小时前
JAVA V6 多商户商城 开发文档——插件目录结构
java·开发语言
2601_9628857213 小时前
如何用 Python 扫描 A 股跳空缺口并统计缺口回补概率?
java·前端·python
滕州市燕猫虎计算机科技工作室个体工商户13 小时前
Java锁
java·开发语言
shehuiyuelaiyuehao15 小时前
1计算机是如何工作的
java·计算机网络
陈随易15 小时前
在Finch用了62亿词元,我认为这是新一代Agent工具之神
前端·人工智能·后端
letisgo515 小时前
JAVA 高级进阶07篇《@Transactional失效的8个场景:代理机制到传播行为》
java·面试·transactional·spring事务·aop动态代理
水域安全老周15 小时前
水趣钓鱼救生衣专利拆解:两级锁紧如何解决落水人衣分离
java·前端·网络