• SpringBoot2.6.8 多环境配置


    参考资料:

    1. Spring Boot 2.4 对多环境配置的支持更改
    2. Spring Boot 2.x基础教程:配置文件详解
    3. SpringBoot多环境下的配置文件的使用


    一. 前提

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

    二. 配置

    ⏹application.yml主配置文件

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

    ⏹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
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    ⏹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
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    ⏹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
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    三. 测试

    3.1 使用STS或者IDEA启动测试

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

    import org.springframework.beans.factory.annotation.Value;
    import org.springframework.context.annotation.Configuration;
    
    @Configuration("configInfo")
    public class SettingConfig {
    
        @Value("${custom.info}")
        public String info;
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    ⏹前台使用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>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18

    ⏹当配置激活为dev的时候

    在这里插入图片描述

    ⏹当配置激活为test的时候

    在这里插入图片描述

    3.2 打jar包,使用命令行测试

    ⏹方式1

    • 使用--spring.profiles.active指定生产环境
    • 使用--server.port=8888指定端口号
    java -jar jmw-0.0.1-SNAPSHOT.jar --spring.profiles.active=product --server.port=8888
    
    • 1

    效果
    在这里插入图片描述
    ⏹方式2

    • -Dspring.profiles.active用于指定生产环境
    • -Dspring.profiles.active不能放在命令行后面,需要放在jar包名称之前
    java -jar -Dspring.profiles.active=test jmw-0.0.1-SNAPSHOT.jar
    
    • 1

    效果
    在这里插入图片描述

  • 相关阅读:
    MySQL(一):库的操作、数据类型和表的操作
    2.6 - 进程资源
    javaEE----servlet初识
    js如何实现数组去重的常用方法
    Xylan-MAL|木聚糖-马来酰亚胺|木聚糖-聚乙二醇-马来酰亚胺|马来酰亚胺-PEG-木聚糖
    在 Android 上测试 Kotlin 协程
    .net、C#单元测试xUnit
    Android -BLE 蓝牙模块开发
    正则表达式基础补充学习
    RandomAccessFile实现断点续传
  • 原文地址:https://blog.csdn.net/feyehong/article/details/126650495