SpringBoot 多环境用命令行启动,不修改配置文件

本文介绍了一种简便的SpringBoot多环境配置方法,通过命令行参数动态切换环境,无需修改配置文件,大大提升了开发效率。适用于本地、测试和生产环境的快速部署。

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

SpringBoot 多环境用命令行启动,不修改配置文件
在真实的项目开发中,往往是有3套开发环境,本地+测试+生产

至少也需要2套环境 本地+生产

在本地开发的时候,springboot 可以在配置文件中添加多个属性文件,比如

application.properties,
application-dev.proterties
application-test.proterties
application-prod.proterties

其中application.properties,是总的通用的配置文件

剩余的配置文件配置 填写不同环境对应的 数据库,日志路径 等信息

然后application.properties中有这么一个配置

spring.profiles.active=dev

在测试环境运行就改成test,生产就改成prod

发布版本的时候,程序员先在本地进行打包,

打成jar包

上测试了,就用压缩软件把jar包打开,修改spring.profiles.active=test

上生产环境了.就用压缩软件把jar包打开,修改spring.profiles.active=prod

这种方式 太过于麻烦,浪费了大量的时间, 把时间都花在了不该花的地方

其实有一种很简单的方法,就可以解决这个问题,大大提高开发效率,

奈何没人知道,心痛,重复机械的劳动,有可能还会出现字符编码不对,压缩包修改文件导致jar 包不能启动,必须在打包的时候先指定spring.profiles.active=xxx 环境打包

下面分享提高效率的方式

1.新建一个springboot 工程,web项目

2.新建2个文件

application-dev.proterties
application-test.proterties

首先是application-dev.proterties,里面写上

a=hello
1
然后是application-test.proterties,里面写上

a=world
1
在总的属性文件 application.properties, 写入

spring.profiles.active=dev
1
属性文件全部ok

下面是对属性文件进行读取,新建一个Controller

package com.example.multiennvi.controller;

import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

@Controller
@ResponseBody
public class Test {

@Value("${a}")
private String  aa;

@RequestMapping("/helllo")
public String aa(){
    System.out.println(aa);
    return aa;
}

}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
属性文件会对a这个熟悉感值进行读取,

当我们进行本地开发的时候,由于总的属性文件 application.properties 里面配置的是dev 的环境,所以启

动的时候就是dev 里面的数据库啊,日志啊 等信息

下面就是开发好了,要上测试环境进行部署了,

以往这个时候,需要程序员手动修改 application.properties中 spring.profiles.active=test

然后打包,

打包好了 ,通过跳板机上传到 测试的linux跑 ,跑起来没问题了.

然后还会有生产环境,再去修改 spring.profiles.active=prod,然后在上传到生产服务器启动

3.正确的做法

首先到打包的目录下面
一般我们的启动方式是

java -jar xxxx.jar
1
这个时候我们需要在后面多加一点东西

java -jar x.jar --spring.profiles.active=xxx
1
只要把xxx 修改成对应的dev ,test或者prod 就可以了

就是这么的简单,提搞生产效率的利器命令

下面测试下
首先是指定dev 环境启动,由于总属性文件配置的是dev,所以不指定也是ok 的

下面进行测试:

读取的是hello

关掉,重新指定启动的环境为test

下面进行测试

读取的是world

很简单的一个命令,大大的提高 部署效率,省心,省力.
————————————————
版权声明:本文为优快云博主「翻身了,咸鱼!」的原创文章,遵循CC 4.0 by-sa版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.youkuaiyun.com/a897180673/article/details/81383645

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值