SpringBoot实现启动一键切换多配置在也不用那么麻烦了

简介: SpringBoot实现启动一键切换多配置在也不用那么麻烦了

介绍:

SpringBoot我有三个配置如果切来切去还要修改配置文件显然是不合理的。

application-dev.yml  

application-prod.yml  

application-test.yml  

application.yml

解决思路:

不同的环境可能需要不同的配置。为了解决这个问题,可以采用以下几种方法进行多环境配置:

使用Spring Boot的profile功能:

1.Spring Boot支持基于profile的属性配置。你可以在application.yml文件中使用spring.profiles.active属性来指定当前激活的profile。根据不同的环境,可以创建不同的profile配置文件,

例如application-dev.yml

application-test.yml

application-prod.yml

在运行时,通过设置不同的环境变量或命令行参数来激活相应的profile。

1.修改pom.xml文件
<profiles>
        <!-- 开发环境 -->
        <profile>
            <id>dev</id>
            <properties>
                <package.environment>dev</package.environment>
            </properties>
            <activation>
                <!-- 默认激活这个配置 使用dev-->
                <activeByDefault>true</activeByDefault>
            </activation>
        </profile>
 
        <!--测试环境-->
        <profile>
            <id>test</id>
            <properties>
                <package.environment>test</package.environment>
            </properties>
        </profile>
 
        <!--生产环境-->
        <profile>
            <id>prod</id>
            <properties>
                <package.environment>prod</package.environment>
            </properties>
        </profile>
    </profiles>
    <build>
        <resources>
            <resource>
                <directory>src/main/resources</directory>
                <filtering>true</filtering>
                <includes>
                    <include>application.yml</include>
                    <include>application-${package.environment}.yml</include>
                    <include>**/*.xml</include>
                </includes>
            </resource>
        </resources>
    </build>
2.配置文件取属性(application.yml)
server:
  port: 9000
  tomcat:
    basedir: /.
 
spring:
  profiles:
    active: @package.environment@  # 指定环境
 
3.根据不同属性启动(启动的时候可以勾选dev就是dev,也可以勾选其他)

4.打包
# 开发环境
mvn clean package -P dev
 
# 测试环境
mvn clean package -P test
 
# 生产环境
mvn clean package -P prod


相关文章
|
canal 缓存 NoSQL
Redis缓存与数据库如何保证一致性?同步删除+延时双删+异步监听+多重保障方案
根据对一致性的要求程度,提出多种解决方案:同步删除、同步删除+可靠消息、延时双删、异步监听+可靠消息、多重保障方案
Redis缓存与数据库如何保证一致性?同步删除+延时双删+异步监听+多重保障方案
|
4月前
|
人工智能 缓存 负载均衡
spring boot-MultipartFile 机制
本文详解了 Spring Boot 中 MultipartFile 的工作机制及大文件上传的解决方案。内容涵盖 MultipartFile 的解析流程、上传配置、Feign 上传大文件的内存问题及基于 RestTemplate 的流式上传实现。同时介绍了服务器端如何直接处理 application/octet-stream 类型的文件流,避免内存溢出问题。适合需要优化文件上传性能的开发者参考。
482 0
|
Java 测试技术 数据库
java SpringBoot 切换不同的运行环境(生产环境、开发环境、测试环境)SpringBoot配置多个不同运营环境【多文件版本】
java SpringBoot 切换不同的运行环境(生产环境、开发环境、测试环境)SpringBoot配置多个不同运营环境【多文件版本】
521 0
|
存储 关系型数据库 MySQL
MySQL中select 查询完整语法与子查询使用
MySQL中select 查询完整语法与子查询使用
2143 1
|
Linux Shell
10-10|linux命令查询 关键字在文本中出现的行数
10-10|linux命令查询 关键字在文本中出现的行数
|
消息中间件 Java Maven
Java整合RabbitMQ实现生产消费(7种通讯方式)
Java整合RabbitMQ实现生产消费(7种通讯方式)
514 0
|
机器学习/深度学习 自然语言处理 数据可视化
文本挖掘与可视化:生成个性化词云的Python实践【7个案例】
词云(Word Cloud),又称为文字云或标签云,是一种用于文本数据可视化的技术,通过不同大小、颜色和字体展示文本中单词的出现频率或重要性。在词云中,更频繁出现的单词会显示得更大,反之则更小。
|
Java Shell 测试技术
环境切换大法:掌握Spring Boot多套配置与@Profile注解的高级技巧
环境切换大法:掌握Spring Boot多套配置与@Profile注解的高级技巧
459 2
环境切换大法:掌握Spring Boot多套配置与@Profile注解的高级技巧
|
运维 监控 Java
Spring Boot Actuator的常见Endpoint
Spring Boot Actuator的Endpoint提供了一种简单的方式来监控和管理我们的应用。通过这些Endpoint,我们可以获取应用的各种信息,找出应用的问题,优化应用的性能和稳定性。无论你是一个开发者,还是一个运维人员,都应该学习和使用Spring Boot Actuator的Endpoint,这将对你的工作带来很大的帮助。
247 7
|
Java API 数据处理
Java Bean参数验证:深入探索javax.validation.constraints注解
Java Bean参数验证:深入探索javax.validation.constraints注解
465 0