iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >Springboot与Maven多环境配置的解决方案
  • 595
分享到

Springboot与Maven多环境配置的解决方案

2024-04-02 19:04:59 595人浏览 独家记忆

Python 官方文档:入门教程 => 点击学习

摘要

目录Profile用法resources filters 多环境配置解决方案 Profile用法 我们在application.yml中为jdbc.username赋予一个值,这个值

Profile用法

我们在application.yml中为jdbc.username赋予一个值,这个值为一个变量


jdbc:
  username: ${jdbc.username}

Maven中的profiles可以设置多个环境,当我们选择a环境后,<jdbc.username>内的值将替换上述配置文件中的变量


 </profiles>
        <profile>
            <id>a</id>
            <properties>
                <jdbc.username>root</jdbc.username>
            </properties>
            <!-- 默认使用此环境 -->
            <activation>
                <activeByDefault>true</activeByDefault>
            </activation>
        </profile>
    </profiles>

我们查看编译后的application.yml文件,果然变量已经被赋值。我们猜想是否可以利用Profile的这一特性设置开发测试、生产环境,选择不同环境时使用不同变量,配合Resources和Filter来指定打包内容以及替换变量。


jdbc:
  username: root

resources

用来操作编译文件

filters

过滤器,设置过滤器的资源将会对同名变量进行赋值(被赋值的资源文件需要设置filtering为true)

多环境配置解决方案

网上大多数都是分为application-dev.xml、application-test.xml、application-prod.xml三个文件,可是我们在真实项目开发中,将会用到很多各式各样的文件(例如log4j的配置文件),它们在不同环境中应该也是不同的配置,不能在测试和生产环境使用同一个配置文件。所以我们将分为三个文件夹分别代表开发环境、测试环境、生产环境,他们里面的配置文件种类一致但是内容不一样。选择完当前环境后,打的jar包只包含当前环境文件夹下的配置文件。


├─main
│  ├─java
│  │  └─......
│  └─resources
│      ├─dev
│      │   └─config
│      │   │   └─MQ.yml
│      │   │   └─Redis.yml
│      │   └─application-dev.yml
│      ├─prod
│      │  └─config
│      │  │    └─mq.yml
│      │  │    └─redis.yml
│      │  └─application-prod.yml
│      └─test
│      │  └─config
│      │  │    └─mq.yml
│      │  │    └─redis.yml
│      │  └─application-test.yml
│    └─application.yml
│    └─a.xml
└─test
    └─java
        └─......

dev下的config下的mq.yml


mq: mq-dev

dev下的config下的redis.yml


redis: redis-dev

dev下的application-dev.yml


profiles.active:
  dev
port: dev-port
application.yml

spring:
  profiles:
    active: ${profiles.active}
 
port: ${port}

查看编译后的结果

 

其中application.yml中变量已经被替换为


spring:
  profiles:
    active: dev
port: dev-port

完整的pom.xml


    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-resources-plugin</artifactId>
                <version>3.1.0</version>
                <!--使用默认的变量分割符即${}-->
                <configuration>
                    <useDefaultDelimiters>true</useDefaultDelimiters>
                </configuration>
            </plugin>
        </plugins>

        <!-- 测试文件的编译路径设置 -->
        <testResources>
            <testResource>
                <!--这里是关键! 根据不同的环境,把对应文件夹里的配置文件打包-->
                <directory>src/main/resources</directory>
                <includes>
                    <include>application.yml</include>
                </includes>
                <filtering>true</filtering>
            </testResource>

            <testResource>
                <!--这里是关键! 根据不同的环境,把对应文件夹里的配置文件打包-->
                <directory>src/main/resources/${profiles.active}</directory>
                <includes>
                    <include>***.properties</include>
                    <include>***.yml</include>
                </includes>
                <filtering>false</filtering>
            </resource>

        </resources>

        <!-- 定义 filter,即该资源中的值将会用来替换同名属性(设置 filtering 为 true 的资源中的属性)-->
        <filters>
          <filter>
              src/main/resources/${profiles.active}/application-${profiles.active}.yml
          </filter>
        </filters>
    </build>

    <profiles>
        <profile>
            <!-- 本地开发环境 -->
            <id>dev</id>
            <properties>
                <profiles.active>dev</profiles.active>
            </properties>
            <activation>
                <activeByDefault>true</activeByDefault>
            </activation>

        </profile>

        <profile>
            <!-- 测试环境 -->
            <id>test</id>
            <properties>
                <profiles.active>test</profiles.active>
            </properties>
        </profile>

        <profile>
            <!-- 生产环境 -->
            <id>prod</id>
            <properties>
                <profiles.active>prod</profiles.active>
            </properties>
        </profile>
    </profiles>

到此这篇关于SpringBoot与Maven多环境配置的解决方案的文章就介绍到这了,更多相关Springboot Maven多环境配置内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: Springboot与Maven多环境配置的解决方案

本文链接: https://www.lsjlt.com/news/129167.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Springboot与Maven多环境配置的解决方案
    目录Profile用法resources filters 多环境配置解决方案 Profile用法 我们在application.yml中为jdbc.username赋予一个值,这个值...
    99+
    2024-04-02
  • Admin - SpringBoot + Maven 多启动环境配置实例详解
    一:父级pom.xml文件 resources目录下新建指定文件夹,存放Spring配置文件 <profiles> <profile> <...
    99+
    2024-04-02
  • idea多环境配置及问题解决方案
    目录前言项目结构各个配置文件构建Idea切换环境出现的问题SpringBoot问题总结前言 正常在企业里面的项目都会有开发环境、测试环境、生产环境,各个环境配置可能都会不一样,我们在...
    99+
    2023-01-10
    idea多环境配置 idea环境配置 idea配置多环境
  • SpringBoot Profile多环境配置方式
    目录Profile多环境配置Profile配置详解1.问题2.为什么要使用profilesProfile多环境配置 我们在开发项目时,通常同一套程序会被发布到几个不同的环境,比如:开...
    99+
    2024-04-02
  • Admin - SpringBoot + Maven多启动环境配置的示例分析
    小编给大家分享一下Admin - SpringBoot + Maven多启动环境配置的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!一:父级pom.xml...
    99+
    2023-06-14
  • SpringBoot-application.yml多环境配置详解
    介绍 开发SpringBoot应用的时候,通常程序需要在测试环境测试成功后才会上线到生产环境。而测试环境和生产环境的数据库地址、服务器端口等配置都不同。在为不同环境打jar包时,需要...
    99+
    2024-04-02
  • 详解Maven环境的搭建与idea配置
    本文主要介绍了Maven环境的搭建与idea配置,分享给大家,具体如下:Maven 下载: http://maven.apache.org/download.cgiMaven 中央仓库地址:http://search.maven.org 配...
    99+
    2023-05-30
    maven idea 配置
  • springboot结合maven配置不同环境的profile方式
    目录springboot结合maven配置不同环境的profile1、在spring-boot中新建配置文件2、在application.yml中增加属性3、在pom.xml中添加不...
    99+
    2024-04-02
  • SpringBoot中的Profile多环境配置方法
    目录Profile多环境配置一、使用profile文件进行多环境配置二、使用@Profile注解进行多环境配置Profile多环境配置       在实...
    99+
    2023-01-28
    SpringBoot Profile多环境配置 SpringBoot Profile配置 SpringBoot 多环境配置
  • SpringBoot多环境配置教程详解
    目录一、为什么要配置多环境二、如何进行多环境配置呢1、针对 yaml 配置文件2、针对 properties 配置文件三、命令行启动参数第一步:打包项目第二步:输入命令行补充内容一、...
    99+
    2024-04-02
  • Go 多环境下配置管理方案(多种方案)
    目录需求方案1:配置文件管理方案2:集中式管理配置需求 开发过程中开发者经常面对的一个需求就是:一个项目可能会在不同的环境下运行,本地开发环境、测试环境、灰度环境、生产环境。每个环境...
    99+
    2024-04-02
  • Maven的安装与配置环境变量
    一、下载安装Maven 进入官方网站:点击进入 2、找到需要下载的文件 3、将压缩文件解压到自己想要的目录(注:目录不能带中文,如果带中文,会导致一些错误) 二、配置Maven环境变量 右键此电脑...
    99+
    2023-09-05
    maven java spring
  • maven环境变量配置方法
    要配置Maven环境变量,您可以按照以下步骤进行操作:1. 下载Maven:首先,您需要从Maven官方网站(https://mav...
    99+
    2023-09-13
    maven
  • Nacos解决laravel多环境下配置切换的案例
    这篇文章主要介绍了Nacos解决laravel多环境下配置切换的案例,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。前言对于应用程序运行的环境来说,不同的环境有不同的配置通常是...
    99+
    2023-06-06
  • maven环境变量配置讲解
    maven运行依赖于 JAVA_HOME 如果各位还没有配置 JAVA_HOME,可以参考我的另一篇博客 JDK环境变量配置 JDK 环境变量配置 1.下载并解压 maven压缩包 ...
    99+
    2024-04-02
  • springboot全局配置文件与多环境配置的全过程
    目录1、全局配置文件2、多环境配置附:加载多环境配置总结1、全局配置文件 新建一个springboot项目它的resources目录下有一个application.propertie...
    99+
    2024-04-02
  • springboot多环境进行动态配置的方法
    目录一、如何配置多环境二、生效多环境的多种方式2.1、spring.config.name2.2、spring.profiles.active2.3、pom中<profiles...
    99+
    2024-04-02
  • SpringBoot如何配置logback.xml多环境
    这篇文章主要介绍SpringBoot如何配置logback.xml多环境,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!操作步骤resource文件的内容结构如下:配置application.ymlspring:&nb...
    99+
    2023-06-15
  • Docker环境配置以及问题解决方案
    目录环境准备Linux系统分为两种:查看系统版本:查看系统内核查看系统配置步骤卸载docker问题汇总docker 启动报错常用命令环境准备 我的服务器是 centos 7 环境 如...
    99+
    2022-11-16
    docker环境配置 服务器配置docker 服务器安装docker
  • SpringBoot 中怎么配置多环境
    SpringBoot 中怎么配置多环境,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。SpringBoot 的多环境配置1. 语法结构:application-{p...
    99+
    2023-06-19
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作