SpringBoot多环境配置及配置文件分类

简介: SpringBoot多环境配置及配置文件分类

一、多环境配置

开发环境、测试环境、生成环境的配置肯定都不相同,比如我们开发阶段会在自己的电脑上安装mysql,连接自己电脑上的mysql即可,但是项目开发完毕后要上线就需要该配置,将环境的配置改为线上环境的。

3c60e5d34f224cb1a9cce79e513cc270.png

来回的修改配置会很麻烦,而SpringBoot给开发者提供了多环境的快捷配置,需要切换环境时只需要改一个配置即可。不同类型的配置文件多环境的配置都不相同,接下来对不同类型的配置文件进行说明。

yaml文件

在application.yml中使用---来分隔不同的属性,内容如下:

#开发
spring:
  profies: dev #给开发环境起的名字
server:
  port: 80
---
#生产
spring:
  profiles: pro #给生产环境起的名字
server:
  port: 81
---
#测试
spring:
  profiles: test #给测试环境起的名字
server:
  port: 82
---

上面配置中spring-profiles是用来给不同的配置起名字的。可以使用如下配置来启用一段配置

#设置启用的环境 
spring: 
    profiles: 
        active: dev #表示使用的是开发环境的配置

综上所述,application.yml配置文件内容如下

#设置启用的环境
spring:
  profiles:
    active: dev
---
#开发
spring:
  config:
    activate:
      on-profile: dev
server:
  port: 80
---
#生产
spring:
  profiles: pro
server:
  port: 81
---
#测试
spring:
  profiles: test
server:
  port: 82
---

注意:


上面配置中给不同配置起名字的spring.profiles配置项已经过时,最新用来起名字的配置项是

#开发 
spring: 
    config: 
        activate: 
            on-profile: dev

properties文件

properties类型的配置文件配置多环境需要定义不同的配置文件


application-dev.properties是开发环境的配置文件,我们在该文件中配置端口号80

server.port=80

application-test.properties是测试环境的配置文件,我们在该文件配置端口号81

server.port=81

application-pro.properties是生产环境的配置文件,我们在该文件中端口号为82

server.port=82


SpringBoot只会默认加载名为application.properties的配置文件,所以需要在application.properties配置文件中设置启用哪个配置文件,配置如下:

spring.profiles.active=pro

命令启动参数设置

使用SpringBoot开发的程序以后都是打成jar包的,可以通过如下设置指定jar的运行环境:

jave -jar xxx.jar --spring.profiles.active=test


也可以通过如下方式修改临时端口:

java -jar xxx.jar --server.port=88

同时设置多个配置,比如指定启用哪个环境配置,又临时指定端口,如下:

java -jar springboot.jar --server.port=88 --spring.profies.active=test


在测试后会发现命令行设置的端口号优先级高(也就是使用的是命令行设置的端口号),配置的优先级其实SpringBoot官网已经进行了说明,参见:

https://docs.spring.io/spring-boot/docs/current/reference/html/spring-boot-features.html#boot-

features-external-config


进入官网后会看到如下页面

e408ae205c18472f9e0a8fd47ddd98b9.png

如果使用了多种方式配合同一个配置项,优先级高的生效。

二、配置文件分类

有这样的场景,我们开发完毕后需要测试人员进行测试,由于测试环境和开发环境的很多配置都不相同,所以测试人员在运行我们的工程时需要临时修改很多配置,如下:

java -jar springboot.jar --spring.profiles.active=test --server.port=85 --server.servlet.context=path=/heima --server.tomcat.connection-timeout=-1.....

针对这种情况,SpringBoot定义了配置文件不同的放置的位置,而放置不同位置的优先级时不同。


SpringBoot中4种配置文件放置位置:

1级:

classpath:application.yml

2级:

classpath:config/application.yml

3级:

file:application.yml

4级:

file:config/application.yml


说明:级别越高优先级越高


注意:

SpringBoot2.5.0版本存在一个bug,我们在使用这个版本四,需要在jar所在位置的config目录下创建一个任意名称的文件夹

目录
相关文章
|
Java Spring
Spring boot 运行服务jar外配置配置文件方式总结
Spring boot 运行服务jar外配置配置文件方式总结
1746 0
|
2月前
|
JavaScript Java Maven
【SpringBoot(二)】带你认识Yaml配置文件类型、SpringMVC的资源访问路径 和 静态资源配置的原理!
SpringBoot专栏第二章,从本章开始正式进入SpringBoot的WEB阶段开发,本章先带你认识yaml配置文件和资源的路径配置原理,以方便在后面的文章中打下基础
321 3
|
9月前
|
存储 Java 文件存储
微服务——SpringBoot使用归纳——Spring Boot使用slf4j进行日志记录—— logback.xml 配置文件解析
本文解析了 `logback.xml` 配置文件的详细内容,包括日志输出格式、存储路径、控制台输出及日志级别等关键配置。通过定义 `LOG_PATTERN` 和 `FILE_PATH`,设置日志格式与存储路径;利用 `<appender>` 节点配置控制台和文件输出,支持日志滚动策略(如文件大小限制和保存时长);最后通过 `<logger>` 和 `<root>` 定义日志级别与输出方式。此配置适用于精细化管理日志输出,满足不同场景需求。
2172 1
|
9月前
|
Java 数据库 微服务
微服务——SpringBoot使用归纳——Spring Boot中的项目属性配置——指定项目配置文件
在实际项目中,开发环境和生产环境的配置往往不同。为简化配置切换,可通过创建 `application-dev.yml` 和 `application-pro.yml` 分别管理开发与生产环境配置,如设置不同端口(8001/8002)。在 `application.yml` 中使用 `spring.profiles.active` 指定加载的配置文件,实现环境快速切换。本节还介绍了通过配置类读取参数的方法,适用于微服务场景,提升代码可维护性。课程源码可从 [Gitee](https://gitee.com/eson15/springboot_study) 下载。
369 0
|
Java 数据库连接 数据库
springboot启动配置文件-bootstrap.yml常用基本配置
以上是一些常用的基本配置项,在实际应用中可能会根据需求有所变化。通过合理配置 `bootstrap.yml`文件,可以确保应用程序在启动阶段加载正确的配置,并顺利启动运行。
1640 2
|
Java Spring 容器
SpringBoot读取配置文件的6种方式,包括:通过Environment、@PropertySource、@ConfigurationProperties、@Value读取配置信息
SpringBoot读取配置文件的6种方式,包括:通过Environment、@PropertySource、@ConfigurationProperties、@Value读取配置信息
2718 3
|
Java 测试技术 Spring
springboot学习三:Spring Boot 配置文件语法、静态工具类读取配置文件、静态工具类读取配置文件
这篇文章介绍了Spring Boot中配置文件的语法、如何读取配置文件以及如何通过静态工具类读取配置文件。
1156 0
springboot学习三:Spring Boot 配置文件语法、静态工具类读取配置文件、静态工具类读取配置文件
|
消息中间件 NoSQL 安全
(转)Spring Boot加载 不同位置的 application.properties配置文件顺序规则
这篇文章介绍了Spring Boot加载配置文件的顺序规则,包括不同位置的application.properties文件的加载优先级,以及如何通过命令行参数或环境变量来指定配置文件的名称和位置。
720 0
|
Java 测试技术 Spring
Java SpringBoot 加载 yml 配置文件中字典项
Java SpringBoot 加载 yml 配置文件中字典项
208 0
|
JavaScript Java 测试技术
基于SpringBoot+Vue+uniapp的分类信息服务平台的详细设计和实现(源码+lw+部署文档+讲解等)
基于SpringBoot+Vue+uniapp的分类信息服务平台的详细设计和实现(源码+lw+部署文档+讲解等)
130 0