《Spring》--使用application.yml特性提供多环境开发解决方案/开发/测试/线上--方案1

这篇具有很好参考价值的文章主要介绍了《Spring》--使用application.yml特性提供多环境开发解决方案/开发/测试/线上--方案1。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

阿丹有话说: 

        有不少同志有疑问说我正常开发的时候,需要自己搭建项目的时候。总是出现配置文件环境切换出现问题。多环境系列会出两个文章解决给搭建重点解决一下这个问题。给与两种解决的方案。正确让大家只需要按照步骤操作就可以完成。

原理:

        通过pom文件maven指示来读取不同前缀的配置文件来完成多环境切换。

配置来自于Maven项目,用于实现环境切换。其原理是通过定义不同的profile(如dev、test和prod),每个profile中包含特定的属性(这里为标签),分别对应开发环境、测试环境和生产环境。

在构建项目时,默认激活的是prod环境(由<activation><activeByDefault>true</activeByDefault></activation>指定)。Maven会根据激活的profile中的属性值来确定使用哪个环境的配置文件。

在build部分的资源配置中,通过<filter>src/main/resources/profiles/${env}.properties</filter>这一行,Maven会在构建过程中查找并应用与当前环境对应的profiles/配置文件,这里的‘env.properties配置文件,这里的‘{env}`会根据激活的profile被替换为实际的环境名(dev、test或prod)。

这样一来,当执行Maven构建命令时,就可以通过指定不同的profile实现不同环境之间的切换,从而加载不同的环境配置参数,以满足不同环境下项目的部署需求。

<!-- 配置Maven的profiles,用于定义不同环境(dev、test和prod) -->
<profiles>
    <!-- 开发环境profile -->
    <profile>
        <id>dev</id>
        <properties>
            <!-- 定义开发环境标识变量env为'dev' -->
            <env>dev</env>
        </properties>
    </profile>

    <!-- 测试环境profile -->
    <profile>
        <id>test</id>
        <properties>
            <!-- 定义测试环境标识变量env为'test' -->
            <env>test</env>
        </properties>
    </profile>

    <!-- 生产环境profile,并设置为默认激活的环境 -->
    <profile>
        <id>prod</id>
        <properties>
            <!-- 定义生产环境标识变量env为'prod' -->
            <env>prod</env>
        </properties>
        <activation>
            <!-- 默认情况下激活此profile -->
            <activeByDefault>true</activeByDefault>
        </activation>
    </profile>
</profiles>

<!-- 配置Maven构建信息 -->
<build>
    <!-- 设置最终生成项目的名称为 -->
    <finalName>项目名称</finalName>

    <!-- 配置资源过滤器,用于替换资源文件中的变量 -->
    <filters>
        <!-- 根据当前激活的profile加载对应的环境配置文件,如:profiles/dev.properties、profiles/test.properties或profiles/prod.properties -->
        <filter>src/main/resources/profiles/${env}.properties</filter>
    </filters>

    <!-- 配置项目资源目录及处理方式 -->
    <resources>
        <!-- 指定主资源目录,其中的属性文件将进行变量替换 -->
        <resource>
            <directory>src/main/resources</directory>
            <filtering>true</filtering>
        </resource>

        <!-- 指定Java源码目录下的XML和properties文件也进行变量替换 -->
        <resource>
            <directory>src/main/java</directory>
            <includes>
                <include>**/*.xml</include>
                <include>**/*.properties</include>
            </includes>
            <filtering>true</filtering>
        </resource>

        <!-- 将webapp目录及其子目录下的所有文件编译到META-INF/resources目录下 -->
        <resource>
            <directory>src/main/webapp</directory>
            <targetPath>META-INF/resources</targetPath>
            <includes>
                <include>**/*.*</include>
            </includes>
        </resource>

        <!-- 再次指定主资源目录,包含所有类型的资源文件 -->
        <resource>
            <directory>src/main/resources</directory>
            <includes>
                <include>**/*.*</include>
            </includes>
        </resource>
    </resources>
</build>

 使用配置文件注意:

1、可以直接将该配置文件粘贴到pom文件中。但是要注意在build标签中要记得写上自己的补丁,maven打包补丁等。

2、要注意自己的配置文件的后缀。

配置文件结构:

《Spring》--使用application.yml特性提供多环境开发解决方案/开发/测试/线上--方案1,spring,maven,优雅写代码,spring,java,数据库

我这里直接给大家上图

注意: 

1、配置文件的包位置关系要保持正确

2、注意properties中的配置文件的写法和yml配置文件中的写法不一样

3、保证三个环境下的properties中的配置文件的格式一样

4、在写完配置文件之后尝试启动看是否可以读到配置文件中的配置

YML文件注意:

如图所示:

《Spring》--使用application.yml特性提供多环境开发解决方案/开发/测试/线上--方案1,spring,maven,优雅写代码,spring,java,数据库

使用占位符的方式来读取到不同环境下properties中的配置,这样只要保持properties中的配置结构不变就可以切换读取了

原理/总结:

        通过pom文件中maven加载指定的名称的配置文件并去读取数据来切换环境。

每次切换环境的时候只需要将pom文件中的

activeByDefault标签移动到对应的环境名称下就可以了

《Spring》--使用application.yml特性提供多环境开发解决方案/开发/测试/线上--方案1,spring,maven,优雅写代码,spring,java,数据库文章来源地址https://www.toymoban.com/news/detail-815264.html

到了这里,关于《Spring》--使用application.yml特性提供多环境开发解决方案/开发/测试/线上--方案1的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Java实战:Spring Boot application.yml配置文件详解

    本文将详细介绍Spring Boot application.yml 配置文件的使用和配置项。我们将探讨 application.yml 文件的基本概念,以及如何使用它来配置Spring Boot应用程序的各个方面。此外,我们将通过具体的示例来展示如何配置不同的Spring Boot组件,如数据源、数据库、缓存、邮件服务等。本文适

    2024年04月24日
    浏览(34)
  • 聊聊Spring Boot配置文件:优先级顺序、加载顺序、bootstrap.yml与application.yml区别详解

    在 Spring Boot 中,配置文件的优先级顺序是: application-{profile}.yml ( application-{profile}.properties ) application.yml ( application.properties ) bootstrap.yml ( bootstrap.properties )。其中, {profile} 表示不同的环境配置,如 dev 、 test 、 prod 等。 优先级从高到低,高优先级的配置覆盖低优先级

    2024年01月25日
    浏览(47)
  • Spring Boot学习随笔-第一个SpringBoot项目快速启动(org.springframework.boot、@SpringBootApplication、application.yml)

    学习视频:【编程不良人】2021年SpringBoot最新最全教程 创建第一个Module 环境要求 jdk1.8+ maven3.2+ Spring Framework 5.x+ Tomcat 9.0+ IDEA 2021 自动保存刷新pom 在resources下添加application.yml文件后,即可启动springboot应用 由于tomcat内嵌在springboot里面了,所以我们在修改端口号等设置也在配置

    2024年02月05日
    浏览(44)
  • Spring Boot多环境指定yml或者properties

    ● application-local.properties ● application.properties ● application-local.yml ● application.yml application.propertes application-local.propertes application.yml application-local.yml 删除properties之后,项目启动 2023-08-23 09:38:29.423 INFO 22896 — [ main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat started on port(s): 8081 (http)

    2024年02月11日
    浏览(39)
  • Bootstrap.yml那点事 Spring Cloud 配置中心多环境配置

    加载顺序 若application.yml 和bootstrap.yml 在同一目录下:bootstrap.yml 先加载 application.yml后加载,bootstrap.yml 用于应用程序上下文的引导阶段。bootstrap.yml 由父Spring ApplicationContext加载。 配置区别 bootstrap是spring cloud的配置上下文加载。由spring-cloud-context包加载。引入依赖 具体加载类

    2023年04月08日
    浏览(37)
  • application.yml基础配置以及读取

    1.SpringBoot提供了3种配置文件的格式 properties(传统格式/默认格式) yml(主流格式) yaml 1. SpringBoot中导入对应starter后,提供对应配置属性 2.书写SpringBoot配置采用+提示形式书写 properties优先级yml优先级yaml优先级 不同配置文件中相同配置按照加载优先级相互覆盖,不同配置文

    2023年04月08日
    浏览(28)
  • 使用docker-compose.yml快速搭建开发、部署环境(nginx、tomcat、mysql、jar包、各种程序)以及多容器通信和统一配置

    image 镜像名称,可去镜像市场查找自己需要的 hostname 容器内服务名 container_name 容器名 volumes 可以把自己电脑的路径映射到容器中的文件夹中 networks 写同一个网络可以让容器之间进行通信 启动 在项目根目录的命令行中输入 docker-compose up 停止 在项目根目录的命令行中输入 d

    2024年02月12日
    浏览(38)
  • SpringBoot 常用的配置文件 application.yml和 bootstrap.yml的区别

    SpringBoot默认支持properties和YAML两种格式的配置文件。前者格式简单,但是只支持键值对。如果需要表达列表,最好使用YAML格式。SpringBoot支持自动加载约定名称的配置文件,例如application.yml。如果是自定义名称的配置文件,就要另找方法了。可惜的是,不像前者有@PropertySour

    2023年04月15日
    浏览(40)
  • application.yml mybatis最简单的配置

    2024年02月09日
    浏览(31)
  • SpringBoot配置文件application.yml的理解

    一、存放位置分类 1.当前项目根目录下的config目录下 2.当前项目的根目录下 3.resources目录下的config目录下 4.resources目录下 按照这上面的顺序,4个配置文件的优先级依次降低。  二、自定义存放位置和自定义命名 自定义存放位置和自定义配置文件命令和application.properties配置类

    2024年02月09日
    浏览(41)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包