springboot多环境部署

本文基于Spring Boot将项目划分为多个配置,介绍了通过不同命令生效不同配置文件的方法。创建普通Spring Boot项目,添加yml后缀文件,指定默认加载的配置文件。线上环境可覆盖默认配置。还探讨了yml和properties文件并存时的生效规则,即properties文件内容会覆盖yml对应属性内容。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

正经学徒,佛系记录,不搞事情

前言

一般情况下,会因操作的用户不同而给项目配置不同的环境,比如“开发环境”,“测试环境”,“线上环境”,本文基于springboot将项目划分为多个配置,通过不同的命令生效不同的配置文件

正文

创建一个普通的springboot项目,添加三个yml后缀的文件,目录如下

#application.yml
server:
  port: 8088
spring:
  profiles:
    active: dev

#application-dev.yml        开发环境
system:
  serverName: dev_project

#application-prod.yml       线上环境
system:
  serverName: prod_project  
  • 文件命名的格式是固定的 application-{自定义}.yml
  • application.yml文件的 spring.profiles.active=自定义 是指定项目启动默认加载哪个配置文件,现在的配置是dev

创建TestController.java,通过@Value获取属性值,启动项目测试

@RestController
public class TestController {
    @Value("${system.serverName}")
    private String serverName;

    @GetMapping("/test")
    public String test(){
        return serverName;
    }
}

由此可见,使用了application-dev.yml配置文件

线上环境时,可通过 spring.profiles.active=自定义 覆盖默认的配置

如何编译、部署项目参考:https://www.cnblogs.com/ityouknow/p/6834287.html?utm_source=itdadao&utm_medium=referral

现在通过 spring.profiles.active 的配置生效application-prod.yml配置文件

输入命令启动项目

java -jar springboot-0.0.1-SNAPSHOT.jar --spring.profiles.active=prod

 测试结果:

扩展

yml和properties后缀文件的功能是一样的,只是编码的格式不一样

但是有一个问题:yml和properties配置文件同时存在时会是什么效果?

如下,同时存在application-dev.properties和application-dev.yml文件,那当以dev配置启动项目时,哪个文件会生效

经过测试,这里直接提供最终的结果:

当application-dev.properties和application-dev.yml文件同时存在,则properties文件的内容将会覆盖yml对应属性的内容,这里有一个关键词要注意,是覆盖“对应属性”,而不是整个文件覆盖,说明properties和yml并存时,springboot将会把两个配置文件的内容合并起来,且重复的属性将会使用properties文件。包括springcloud的配置中心功能,配置文件存入github,当properties和yml并存时也是如此效果。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

My name is Red ^^

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值