学会springboot多环境配置方案不用5分钟
一 前言
本篇文章的主题是在springboot中写多个配置文件,指定让个配置文件生效,以便于达到在开发环境,测试环境,线上环境根据不同的配置灵活应用;读完本篇你将获得,学会springboot的多环境配置;学会使用idea配置虚拟机参数启动不同的配置文件;学会使用jar包运行并且指定不同的配置文件等;
二 激活方式一
spring框架内部提供了2中方式用于加载YAML文档,以供启动时读取配置文件;YamlPropertiesFactoryBean
会 加载 YAML 变为 Properties;YamlMapFactoryBean
会 转换 YAML 为map;使用YAML更加简便不用担心内部具体如何转换;
2.1pom.xml
引入依赖boor-start依赖和打包插件;jdk1.8版本,boot2.1.1;
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.1.1.RELEASE</version>
<relativePath/>
</parent>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
2.2 application.yml
一切从简,知识追寻者不会在配置文件中写其他内容,就指定端口即可,用于区别不同的环境;其中配置开发环境为dev,生产环境为pro;默认激活dev 环境;
# 激活配置
spring:
profiles:
active: dev
---
# 配置一 开发环境
spring:
profiles: dev
server:
port: 8060
---
# 配置二 生产环境
spring:
profiles: pro
server:
port: 8061
2.3 controller
controller一个hell方法,用于浏览器测试;
@RestController
public class ZSZXZ {
@GetMapping("zszxz")
public String hello(){
return "hello 知识追寻者";
}
}
2.4 启动类
启动类添加@SpringBootApplication注解,表名是个springboot应用,会进行自动配置;
/**
* @Author lsc
* <p> 多环境配置 </p>
*/
@SpringBootApplication
public class ProfileApp {
public static void main(String[] args) {
SpringApplication.run(ProfileApp.class,args);
}
}
2.5 dev执行结果
启动工程,打开浏览器路径如下,端口是8086,说明默认激活dev环境已经成功
2.6 pro执行结果
application.yml中修改激活环境为pro后重启工程,修改浏览器端口,执行结果如下说明配置成功;
# 激活配置
spring:
profiles:
active: pro
执行结果
三 激活方式二
3.1 application.yml
去除application.yml中激活方式,知识追寻者改用idea配置VM参数选项方式进行激活;
---
# 配置一 开发环境
spring:
profiles: dev
server:
port: 8060
---
# 配置二 生产环境
spring:
profiles: pro
server:
port: 8061
3.2 idea配置VM参数
在VM选项中输入-Dspring.profiles.active=dev
,表示激活dev环境;然后重启工程访问即可
四 项目部署方式
将工程打包成jar包,在cmd中如下命令执行,如果包名不同请替换,然后浏览器访问即可;
java -jar springboot-profile-1.0-SNAPSHOT.jar --Dspring.profiles.active=dev
五 多配置文件方式
上面的配置文件都写在一个application.yml中,过于累赘,为了方便查阅和解耦合,推荐多个配置文件方式,然后在主配置文件中激活,具体的步骤如下;
5.1 application-zszxz.yml
新建yml文件名为application-zszxz.yml;内容如下
server:
port: 8061
5.2 application-test.yml
新建yml文件名为application-test.yml;内容如下
server:
port: 8060
5.3 application.yml
修改application.yml内容如下
spring:
profiles:
active: zszxz
5.4 启动后结果
http://localhost:8061/zszxz 启动后结果 与之前一致,不再贴图浪费资源;
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix