当前位置: 首页 > news >正文

SpringBoot2.6.8 多环境配置

参考资料:

  1. Spring Boot 2.4 对多环境配置的支持更改
  2. SpringBoot多环境下的配置文件的使用

一. 前提

在实际项目开发中,在不同的开发阶段会存在不同的开发环境.
一般分为开发环境(dev),测试环境(test),生产环境(product).
如下图所示,不同的开发环境一般都会有一套自己的配置文件.
在这里插入图片描述

二. 配置

⏹application.yml主配置文件

spring:
  profiles:
  	# 激活开发环境.若想激活测试环境,则改为test;若想激活线上环境,则改为product
    active: dev

⏹application-dev.yml

spring:
  datasource:
      url: jdbc:mysql://192.168.10.231/blog_dev
      username: root
      password: mysql_dev
      driver-class-name: com.mysql.cj.jdbc.Driver
custom:
  count: 100
  # 开发环境特有的配置信息
  info: dev_environment

⏹application-test.yml

spring:
  datasource:
      url: jdbc:mysql://192.168.10.231/blog_test
      username: root
      password: mysql_test
      driver-class-name: com.mysql.cj.jdbc.Driver
custom:
  count: 200
  # 测试环境特有的配置信息
  info: test_environment

⏹application-product.yml

spring:
  datasource:
      url: jdbc:mysql://192.168.10.231/blog_product
      username: root
      password: mysql_product
      driver-class-name: com.mysql.cj.jdbc.Driver
custom:
  count: 300
  # 生产环境特有的配置信息
  info: product_environment

三. 测试

⏹创建一个配置文件类,读取配置文件中的信息

import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Configuration;

@Configuration("configInfo")
public class SettingConfig {

    @Value("${custom.info}")
    public String info;
}

⏹前台使用Thymeleaf展示配置文件信息

<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head>
    <script type="text/javascript" th:src="@{/js/public/jquery-3.6.0.min.js}"></script>
    <script type="text/javascript" th:src="@{/js/common/common.js}"></script>
    <title>展示配置文件信息</title>
</head>
<body>
    <h2 id="info"></h2>
</body>
<script th:inline="javascript">
    // 后台配置文件中的信息
    const info = [[${@configInfo.info}]];
    $(function () {
        $("#info").text(info);
    });
</script>
</html>

⏹当配置激活为dev的时候
在这里插入图片描述

⏹当配置激活为test的时候
在这里插入图片描述

相关文章:

  • 安利网课查题接口系统
  • spring-security-oauth2之WebSecurityConfigurerAdapter浅析
  • Windows与网络基础-14-NTFS权限规则
  • 【Python】列表生成式应用的八重境界
  • SOA、ESB、微服务、分布式概念及专业名词阐述
  • IDEA 集成 Github(八)——Git
  • Go程序(Grpc服务)协程数暴涨的原因排查分析
  • Unity新的Input System
  • YOLOv5代码解析(二)
  • kafka系列(一)安装使用及基本原理
  • C# 第七章『I/O数据流』◆第4节:数据流—FileStream 类
  • 物联网开发笔记(2)- 使用Wokwi仿真树莓派Pico点亮LED灯代码分析
  • Vue路由实例
  • 第一章 软考架构师之计算机系统组成与体系结构
  • Mac中无法运行旧版本印象笔记:版本太旧 你的本地印象笔记数据是由新版印象笔记管理
  • SegmentFault for Android 3.0 发布
  • 【Linux系统编程】快速查找errno错误码信息
  • 07.Android之多媒体问题
  • Django 博客开发教程 8 - 博客文章详情页
  • httpie使用详解
  • PAT A1120
  • SQL 难点解决:记录的引用
  • vue--为什么data属性必须是一个函数
  • Web标准制定过程
  • 多线程 start 和 run 方法到底有什么区别?
  • 工作手记之html2canvas使用概述
  • 宾利慕尚创始人典藏版国内首秀,2025年前实现全系车型电动化 | 2019上海车展 ...
  • ​软考-高级-信息系统项目管理师教程 第四版【第19章-配置与变更管理-思维导图】​
  • ​油烟净化器电源安全,保障健康餐饮生活
  • #Ubuntu(修改root信息)
  • #我与Java虚拟机的故事#连载06:收获颇多的经典之作
  • (0)Nginx 功能特性
  • (175)FPGA门控时钟技术
  • (day 2)JavaScript学习笔记(基础之变量、常量和注释)
  • (Git) gitignore基础使用
  • (超简单)使用vuepress搭建自己的博客并部署到github pages上
  • (翻译)Entity Framework技巧系列之七 - Tip 26 – 28
  • (附源码)springboot 个人网页的网站 毕业设计031623
  • (六)什么是Vite——热更新时vite、webpack做了什么
  • (学习日记)2024.02.29:UCOSIII第二节
  • (一)搭建springboot+vue前后端分离项目--前端vue搭建
  • ***汇编语言 实验16 编写包含多个功能子程序的中断例程
  • .net core 6 使用注解自动注入实例,无需构造注入 autowrite4net
  • .net core 连接数据库,通过数据库生成Modell
  • .NET CORE使用Redis分布式锁续命(续期)问题
  • .NETCORE 开发登录接口MFA谷歌多因子身份验证
  • .net企业级架构实战之7——Spring.net整合Asp.net mvc
  • .net用HTML开发怎么调试,如何使用ASP.NET MVC在调试中查看控制器生成的html?
  • /bin/bash^M: bad interpreter: No such file or directory
  • /usr/lib/mysql/plugin权限_给数据库增加密码策略遇到的权限问题
  • @cacheable 是否缓存成功_Spring Cache缓存注解
  • [100天算法】-二叉树剪枝(day 48)
  • [2019.3.20]BZOJ4573 [Zjoi2016]大森林
  • [CCIE历程]CCIE # 20604
  • [CISCN2019 华东北赛区]Web2