SpringBoot中多环境yml的配置与打包问题

 更新时间:2023年09月01日 11:24:26   作者:保护我方胖虎  
这篇文章主要介绍了SpringBoot中多环境yml的配置与打包问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

SpringBoot 多环境配置与打包 启动的两种方式

前言:

在我们使用SpringBoot 作为框架来开发项目的时候,一般我们大致会分为dev(开发),test(测试),prod(生产)这几种环境。

每套环境的数据库配置以及项目配置或多或少是存在一些差异的,针对上诉情况 所以,本文就要探讨一下 项目中如何切换对应的配置文件并启动…

方式一:yml中指定

1.修改配置文件

SpringBoot项目默认配置文件在src/main/resources下的 application.properties

个人习惯使用YML格式,所以修改项目名文application.yml

将此文件为项目启动配置主文件

配置文件内容如下

spring:
  application:
    name: springboot-profile
  profiles:
    active: dev

配置文件解释:

创建一个application名为springboot-profile 配置环境为 dev 环境 那么在启动时就会加载application-dev.yml 这个配置文件

2.创建不同环境的application.yml

在这里插入图片描述

如果想要更换其他环境 ,如test测试环境 只需要在主配置文件 application.yml中修改 active: dev 为 active: test 那么项目在启动时就会加载application-test.yml配置文件

方式二:maven 执行对应命令打包对应配置文件

(1)创建不同环境的application.yml

在这里插入图片描述

(2)在application.yml 主配置文件中添加如下属性

server:
  port: 8080
spring:
  application:
    name: springboot-profile
  profiles:  #指定执行环境
    active: @package.environment@

(3)不同环境指定不同的配置属性

例如application-dev.yml

# 开发环境
author:
  name: leileidev

例如application-prod.yml

#生产线上环境
author:
  name: leileiprod

(4)pom.xml 添加依赖以及属性

profiles 与 dependencies 与build 平级

 <!--配置环境的profile-->
    <profiles>
        <profile>
            <id>dev</id>
            <properties>
                <package.environment>dev</package.environment>
            </properties>
            <!-- 是否默认 true表示默认-->
            <activation>
                <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>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

(5)指定环境打包

进入项目目录下 执行

mvn  clean install -P dev

则会打包application.yml与 application-dev.yml在打包文件 target中

打包 test

mvn  clean install -P test 

打包 prod

mvn  clean install -P prod

idea 中操作如下:

在这里插入图片描述

出现 build success 则说明打包成功

在这里插入图片描述

运行对应jar 包测试

在这里插入图片描述

也可创建一个简单控制层进行测试

 <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
@RestController
@RequestMapping("profile")
public class TestProfileController {
    @Value("${author.name}")
    private String name;
    @GetMapping("/port")
    public String getPort() {
        return name;
    }
}

在这里插入图片描述

到此 !

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • 基于javaWeb 项目SSM配置要点及可能遇到的问题和解决方法

    基于javaWeb 项目SSM配置要点及可能遇到的问题和解决方法

    下面小编就为大家带来一篇基于javaWeb 项目SSM配置要点及可能遇到的问题和解决方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-10-10
  • Jdk11使用HttpClient提交Http2请求的实现方法

    Jdk11使用HttpClient提交Http2请求的实现方法

    这篇文章主要介绍了Jdk11使用HttpClient提交Http2请求的实现方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-08-08
  • 详解SpringBoot自动配置源码

    详解SpringBoot自动配置源码

    今天带大家来分析SpringBoot自动配置源码,文中有非常详细的代码示例,对正在学习java的小伙伴们很有帮助,需要的朋友可以参考下
    2021-06-06
  • 详解Spring循环依赖的解决方案

    详解Spring循环依赖的解决方案

    这篇文章主要介绍了详解Spring循环依赖的解决方案,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-05-05
  • Java-lambda表达式入门看这一篇就够了

    Java-lambda表达式入门看这一篇就够了

    lambda表达式最简单的作用就是用于简化创建匿名内部类对象,Lambda表达式是一个可传递的代码块,可以在以后执行一次或多次,下面通过本文给大家介绍Java-lambda表达式入门教程,感兴趣的朋友一起看看吧
    2021-05-05
  • Java常用JVM参数实战

    Java常用JVM参数实战

    本文主要介绍了Java常用JVM参数实战,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-05-05
  • MybatisPlus中如何调用Oracle存储过程

    MybatisPlus中如何调用Oracle存储过程

    这篇文章主要介绍了MybatisPlus中如何调用Oracle存储过程的问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-05-05
  • Spring使用event-stream进行数据推送

    Spring使用event-stream进行数据推送

    这篇文章主要介绍了Spring使用event-stream进行数据推送,前端使用EventSource方式向后台发送请求,后端接收到之后使用event-stream方式流式返回,文中有相关的代码示例供大家参考,需要的朋友可以参考下
    2024-03-03
  • SpringBoot后端服务重定向的实现示例

    SpringBoot后端服务重定向的实现示例

    本文主要介绍了SpringBoot后端服务重定向的实现示例,通过重定向、路径匹配、反向代理和直接调用Controller层接口等方法来实现,感兴趣的可以了解一下
    2025-01-01
  • Java 常用类解析:java异常机制,异常栈,异常处理方式,异常链,异常丢失详解

    Java 常用类解析:java异常机制,异常栈,异常处理方式,异常链,异常丢失详解

    这篇文章主要介绍了Java 常用类解析:java异常机制,异常栈,异常处理方式,异常链,异常丢失详解的相关资料,需要的朋友可以参考下
    2017-03-03

最新评论