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


相关文章
|
Java Spring
springboot跨域配置
springboot跨域配置
346 0
|
JavaScript
Node.js npm设置淘宝npm镜像
Node.js npm设置淘宝npm镜像
2263 0
|
资源调度 JavaScript Windows
yarn install命令运行报错:无法将“yarn”项识别为 cmdlet、函数、脚本文件或可运行程序的名称。...
yarn install命令运行报错:无法将“yarn”项识别为 cmdlet、函数、脚本文件或可运行程序的名称。...
2474 1
yarn install命令运行报错:无法将“yarn”项识别为 cmdlet、函数、脚本文件或可运行程序的名称。...
|
7月前
|
XML Java Maven
springboot-多环境配置文件
本文介绍了如何创建开发和生产环境的配置文件,并在IDEA和Maven中进行配置。开发环境中,通过设置profile为`dev`来指定配置文件;生产环境中,使用Maven命令参数`-Pprod`打包并指定配置文件。公共配置可放在`application.yml`中统一管理。日志配置需确保`logback-spring.xml`中的profile正确,以保证日志正常输出。
363 4
springboot-多环境配置文件
|
canal 缓存 NoSQL
Redis缓存与数据库如何保证一致性?同步删除+延时双删+异步监听+多重保障方案
根据对一致性的要求程度,提出多种解决方案:同步删除、同步删除+可靠消息、延时双删、异步监听+可靠消息、多重保障方案
Redis缓存与数据库如何保证一致性?同步删除+延时双删+异步监听+多重保障方案
|
3月前
|
人工智能 缓存 负载均衡
spring boot-MultipartFile 机制
本文详解了 Spring Boot 中 MultipartFile 的工作机制及大文件上传的解决方案。内容涵盖 MultipartFile 的解析流程、上传配置、Feign 上传大文件的内存问题及基于 RestTemplate 的流式上传实现。同时介绍了服务器端如何直接处理 application/octet-stream 类型的文件流,避免内存溢出问题。适合需要优化文件上传性能的开发者参考。
330 0
|
Java 测试技术 数据库
java SpringBoot 切换不同的运行环境(生产环境、开发环境、测试环境)SpringBoot配置多个不同运营环境【多文件版本】
java SpringBoot 切换不同的运行环境(生产环境、开发环境、测试环境)SpringBoot配置多个不同运营环境【多文件版本】
431 0
|
7月前
|
Ubuntu Linux 网络安全
防火墙设置
本文介绍了Ubuntu和CentOS系统中防火墙的基本设置方法。对于Ubuntu,重点讲解了UFW(Uncomplicated Firewall)的使用,包括查看状态、开启/关闭防火墙、管理端口和IP地址以及服务配置。而对于CentOS,主要涉及firewalld的常用操作,如查看状态、启动/关闭防火墙、设置开机启动、管理端口和IP地址,以及服务允许等具体命令示例。内容简洁实用,适合系统管理员快速上手。
543 10
|
9月前
|
Java API Maven
SpringBootWeb篇-入门了解Swagger的具体使用
通过上述步骤,您可以在 Spring Boot 项目中快速集成和使用 Swagger。Swagger 提供了简洁的配置和强大的功能,使得 API 文档的生成和测试变得非常方便。通过 Swagger 的注解,开发者可以清晰地描述 API 的功能,提高文档的可读性和可维护性。通过访问 Swagger UI,您可以直观地查看和测试 API,极大地提升开发效率。
640 7
|
消息中间件 Java Maven
Java整合RabbitMQ实现生产消费(7种通讯方式)
Java整合RabbitMQ实现生产消费(7种通讯方式)
447 0