【第14章】SpringBoot实战篇之多环境配置

news2024/11/23 17:21:25

文章目录

  • 前言
  • 一、通用配置文件
    • 1. 定义
    • 2. 使用
      • 2.1 application.yml
      • 2.2 启动类
    • 3. 测试
  • 二、多环境配置文件
    • 1.定义
      • 1.1 application-local.yml
      • 1.2 application-dev.yml
      • 1.3 application-test.yml
      • 1.4 application-prod.yml
    • 2.使用
      • 2.1 application.yml
      • 2.2 启动类
    • 3.测试
  • 三、多环境配置文件分组
    • 1. 定义
      • 1.1 application-local-db.yml
      • 1.2 application-local-redis.yml
      • 1.3 application-local-mq.yml
    • 2. 使用
      • 2.1 application.yml
      • 2.2 启动类
    • 3. 测试
  • 总结


前言

在一个项目中,需要配置的参数往往是繁重的,而其中系统配置和应用配置占据较大的比重,我们需要对其进行拆分。


一、通用配置文件

application.yml文件通常存放系统框架配置如spring、mybatis等;application-common.yml则用来存放应用通用配置参数。

1. 定义

#application-common.yml 通用配置
common:
    message: 小猪佩奇

2. 使用

2.1 application.yml

spring:
  profiles:
    include: common

2.2 启动类

public static void main(String[] args) {
    ConfigurableApplicationContext run = SpringApplication.run(SpringBoot3Application.class, args);
    ConfigurableEnvironment environment = run.getEnvironment();
    String appName = environment.getProperty("spring.application.name");
    log.info("{}启动完成",appName);
    String message = environment.getProperty("common.message");
    log.info("提示语{}",message);
}

3. 测试

在这里插入图片描述

二、多环境配置文件

多环境配置文件主要用于存放应用程序中不同环境中存在差异的配置信息,如ip、密钥等;可以划分为本地(local)、开发(dev)、测试(test)、生产(prod)

1.定义

1.1 application-local.yml

#本地配置
application:
  profile:
    name: local

1.2 application-dev.yml

#开发配置
application:
  profile:
    name: dev

1.3 application-test.yml

#测试配置
application:
  profile:
    name: test

1.4 application-prod.yml

#生产配置
application:
  profile:
    name: local

2.使用

2.1 application.yml

spring:
  profiles:
    include: common
    active: local

2.2 启动类

public static void main(String[] args) {
  ConfigurableApplicationContext run = SpringApplication.run(SpringBoot3Application.class, args);
   ConfigurableEnvironment environment = run.getEnvironment();
   String appName = environment.getProperty("spring.application.name");
   log.info("{}启动完成",appName);
   String message = environment.getProperty("common.message");
   log.info("提示语{}",message);
   String profile = environment.getProperty("application.profile.name");
   log.info("当前环境{}",profile);
}

3.测试

在这里插入图片描述

三、多环境配置文件分组

上面的其实基本够用了,因为太多的配置文件不利于维护,如果你的配置确实特别的多,想分类配置,那么可以接着往下看;
场景描述:配置太多,我想数据库一个文件、redis一个文件、mq一个文件

1. 定义

1.1 application-local-db.yml

#本地配置
db:
  config:
    ip: localhost

1.2 application-local-redis.yml

#本地配置
redis:
  config:
    ip: localhost

1.3 application-local-mq.yml

#本地配置
mq:
  config:
    ip: localhost

2. 使用

2.1 application.yml

spring:
  profiles:
    include: common
    active: local
    group:
      local: local-db,local-redis,local-mq

2.2 启动类

 public static void main(String[] args) {
    ConfigurableApplicationContext run = SpringApplication.run(SpringBoot3Application.class, args);
    ConfigurableEnvironment environment = run.getEnvironment();
    String appName = environment.getProperty("spring.application.name");
    log.info("{}启动完成",appName);
    String message = environment.getProperty("common.message");
    log.info("提示语{}",message);
    String profile = environment.getProperty("application.profile.name");
    log.info("当前环境{}",profile);
    String db = environment.getProperty("db.config.ip");
    String redis = environment.getProperty("redis.config.ip");
    String mq = environment.getProperty("mq.config.ip");
    log.info("db[{}],redis[{}],mq[{}]",db,redis,mq);
}

3. 测试

在这里插入图片描述


总结

回到顶部

开发的时候多花些心思,上线的时候省点事。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1807905.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

OPPO高级项目经理曹帆受邀为第十三届中国PMO大会演讲嘉宾

全国PMO专业人士年度盛会 OPPO互联网服务系统内容生态中心高级互联网项目经理曹帆先生受邀为PMO评论主办的2024第十三届中国PMO大会演讲嘉宾,演讲议题为“加、减、乘、除——激活项目团队效能”。大会将于6月29-30日在北京举办,敬请关注! 议…

操作系统入门系列-MIT6.828(操作系统工程)学习笔记(五)---- 操作系统的组织结构(OS design)

系列文章目录 操作系统入门系列-MIT6.S081(操作系统)学习笔记(一)---- 操作系统介绍与接口示例 操作系统入门系列-MIT6.828(操作系统工程)学习笔记(二)----课程实验环境搭建&#x…

[spring] Spring MVC Thymeleaf(上)

[spring] Spring MVC & Thymeleaf(上) 本章内容主要过一下简单的 Spring MVC 的案例 简单来说,spring mvc 就是比较传统的网页开发流程,目前 boot 是可以比较轻松的配置 thymeleaf——毕竟 spring boot 内置对 thymeleaf 的…

Docker与Docker-Compose详解

1、Docker是什么? 在计算机中,虚拟化(英语: Virtualization) 是一种资源管理技术,是将计算机的各种实体资源,如服务器、网络、内存及存储等,予以抽象、转换后呈现出来,打破实体结构间的不可切割的障碍&…

【深度学习】—— 神经网络介绍

神经网络介绍 本系列主要是吴恩达深度学习系列视频的笔记,传送门:https://www.coursera.org/deeplearning-ai 目录 神经网络介绍神经网络的应用深度学习兴起的原因 神经网络,全称人工神经网络(Artificial Neural Network&#xf…

c# 下 ScintillaNET 显示XML信息并折叠节点

winform下显示XML信息(非WPF) 之前使用的是FastColoredTextBox,github地址如下: https://github.com/PavelTorgashov/FastColoredTextBox 但是有个问题,它支持中文,wordwraptrue,自动换行时&…

[大模型]Gemma-2B-Instruct FastApi 部署调用

环境准备 在 平台中租赁一个 3090 等 24G 显存的显卡机器,如下图所示镜像选择 PyTorch-->2.1.0-->3.10(ubuntu22.04)-->12.1。 接下来打开刚刚租用服务器的 JupyterLab,并且打开其中的终端开始环境配置、模型下载和运行演示。 pip 换源加速下载…

【IoT NTN】3GPP R18中关于各类IoT设备在NTN中的增强和扩展

博主未授权任何人或组织机构转载博主任何原创文章,感谢各位对原创的支持! 博主链接 本人就职于国际知名终端厂商,负责modem芯片研发。 在5G早期负责终端数据业务层、核心网相关的开发工作,目前牵头6G技术研究。 博客内容主要围绕…

Nginx学习笔记(十)如何配置HTTPS协议?(公网)

目录 一、简介二、SSL 证书类型介绍三、公网 SSL 证书3.1 证书管理工具3.2 下载安装 acme.sh3.3 申请并下载证书报错1:没有指定账号报错2:DNS无法解析的域名报错3:无效的响应 404 3.4 配置 Nginx3.5 证书过期刷新 四、补充4.1 同一域名的不同…

Unity API学习之消息机制理论与应用

目录 消息机制 示例1:同一物体中不同组件之间发送消息 示例2:父与子对象之间的消息发送(BroadcastMassage) 父对象向子对象发送消息 ​编辑 子对象向父对象发送消息 消息机制 在Unity中,SendMessage 方法用于在游戏对象及其所有子对象上…

【云岚到家】-day02-2-客户管理-认证授权

【云岚到家】-day02-2-客户管理-认证授权 第二章 客户管理1 认证模块1.1 需求分析1.2 小程序认证1.2.1 测试小程序认证1.2.1.1 参考官方流程1.2.1.2 申请小程序账号1.2.1.3 创建jzo2o-customer1.2.1.4 部署前端1.2.1.5 编译运行1.2.1.6 真机调试 2 阅读代码2.1 小程序认证流程2…

虚拟机ping不通主机,但是主机可以ping通虚拟机

我在Windows10系统安装了虚拟机,设置的主机与虚拟机的连接方式是桥接,安装好后,发现虚拟机ping不通主机,但是主机可以ping通虚拟机。 我的操作是:关闭防火墙,发现虚拟机可以ping通主机了。说明是Windows10…

设计高并发秒杀系统:保障稳定性与数据一致性

✨✨谢谢大家捧场,祝屏幕前的小伙伴们每天都有好运相伴左右,一定要天天开心哦!✨✨ 🎈🎈作者主页: 喔的嘛呀🎈🎈 目录 引言 一. 系统架构设计 1. 系统架构图 二、 系统流程 三…

AI绘画工具Ideogram测评:和Midjourney不分伯仲的AI图像工具之一

Ideogram 是一款令人印象深刻的人工智能图像工具,但尽管它于去年 8 月推出并具有不可思议的文本渲染能力,但它并没有引起其他一些更引人注目的 GenAI 服务的关注。 随着该公司推出其生成式人工智能模型 1.0 版本,这种情况即将发生改变&#…

详解 Flink 的容错机制

一、检查点 Checkpoint 1. 介绍 有状态流应用中的检查点(checkpoint),其实就是所有任务的状态在某个时间点的一个快照(一份拷贝),这个时间点应该是所有任务都恰好处理完一个相同的输入数据的时刻。在一个流…

帕友的小贴士,锻炼

帕金森病作为一种慢性神经系统疾病,对患者的生活质量产生了深远的影响。虽然医学界对于帕金森病的治疗仍在不断探索,但合理的锻炼已经被证实是改善患者症状、提高生活质量的有效途径之一。本文旨在为帕金森病患者推荐一些适合的锻炼方法,帮助…

2024 年最佳 iPhone 数据恢复软件

最好的 iPhone 数据恢复软件是什么? 说到 iPhone 数据恢复,拥有合适的软件对于恢复丢失或删除的文件至关重要,无论是照片、视频、消息、联系人还是其他重要数据。那么,最好的 iPhone 数据恢复软件是什么?有几个因素有…

使用C++结合OpenCV进行图像处理与分类

⭐️我叫忆_恒心,一名喜欢书写博客的在读研究生👨‍🎓。 如果觉得本文能帮到您,麻烦点个赞👍呗! 近期会不断在专栏里进行更新讲解博客~~~ 有什么问题的小伙伴 欢迎留言提问欧,喜欢的小伙伴给个三…

力扣hot100: 48. 旋转图像

LeetCode:48. 旋转图像 受到力扣hot100:54. 螺旋矩阵的启发,我们可以对旋转图像按层旋转,我们只需要记录四个顶点,并且本题是一个方阵,四个顶点就能完成图像的旋转操作。 1、逐层旋转 注意到&#xff0…

设计随笔 ---- ADR4525 篇

ADR4525一颗超低噪声、高精度2.5V基准电压源; Fluke 17B准确度指标: ADR4525指标: Fluke 17B测试结果: 2.5V的基准,输出只有2.477V,其实这么高精度的电压基准用3位半的万用表来测试本身就是一个错误&#…