SpringBoot 配置多环境配置文件

简介: SpringBoot 配置多环境配置文件

一、前言

对于springboot工程,在不同环境(例如devtestprod等)可能有不同的配置信息(配置在application.ymlapplication.properties中),例如swagger.enable这个变量,在dev和test环境值为true,在prod环境的值为false。

在springboot中,有两种方式可以实现多环境配置文件:

  1. 一种是直接在一个配置文件中配置多个环境的配置信息(即多文档块,通过---分割),这种仅支持application.yml文件
  2. 一种是一个主配置文件(application.yml或application.properties)和多个环境配置文件(application-dev.yml,application-test.yml,application-prod.yml等)。

二、单个配置实现多环境配置

配置文件为 application.yml,不同环境相同的配置信息可以配置在顶层文档块,不同环境不同配置信息配置在不同环境文档块中。通过 spring.profiles.active变量可以在不同环境指定使用哪个配置文档块。
# 不同环境相同的配置信息可以配置在这个块
server:
  port: 8088
  servlet:
    context-path: /demo
# 激活指定使用哪个环境配置文件
spring:
  profiles:
    active: prod

---
spring:
  profiles: dev

swagger:
  enable: true


---
spring:
  profiles: test

swagger:
  enable: true


---
spring:
  profiles: prod

swagger:
  enable: false

三、多个配置文件形式

创建一个主配置文件,和不同环境的子配置文件,文件布局如下:

在这里插入图片描述

主配置文件:application.yml

# 不同环境相同的配置信息可以配置在这个文件
server:
  port: 8088
  servlet:
    context-path: /demo

# 激活指定使用哪个环境配置文件
spring:
  profiles:
    active: prod

dev环境:application-dev.yml

swagger:
  enable: true

test环境:application-test.yml

swagger:
  enable: true

prod环境:application-prod.yml

swagger:
  enable: false

四、激活配置文件方式

  1. 通过在主配置文件中(application.yml或application.properties)指定变量spring.profiles.active的值,例如spring.profiles.active=dev
  2. 命令行指定:java -jar springboot-demo.jar --spring.profiles.active=dev
  3. 虚拟机参数指定:-Dspring.profiles.active=dev

五、配置文件加载顺序

springBoot启动会扫描读取以下位置中的配置文件,优先级由高到低:
  1. -file:./config/,即当前项目下的config文件夹(src同级目录)
  2. -file:./,即当前项目下
  3. -classpath:./config/,即当前项目中resources资源文件夹下的config文件夹
  4. -classpath:./,即当前项目中resources资源文件夹下
相关文章
|
20天前
|
Java API 数据库
构建RESTful API已经成为现代Web开发的标准做法之一。Spring Boot框架因其简洁的配置、快速的启动特性及丰富的功能集而备受开发者青睐。
【10月更文挑战第11天】本文介绍如何使用Spring Boot构建在线图书管理系统的RESTful API。通过创建Spring Boot项目,定义`Book`实体类、`BookRepository`接口和`BookService`服务类,最后实现`BookController`控制器来处理HTTP请求,展示了从基础环境搭建到API测试的完整过程。
36 4
|
17天前
|
Java API 数据库
Spring Boot框架因其简洁的配置、快速的启动特性及丰富的功能集而备受开发者青睐
本文通过在线图书管理系统案例,详细介绍如何使用Spring Boot构建RESTful API。从项目基础环境搭建、实体类与数据访问层定义,到业务逻辑实现和控制器编写,逐步展示了Spring Boot的简洁配置和强大功能。最后,通过Postman测试API,并介绍了如何添加安全性和异常处理,确保API的稳定性和安全性。
28 0
|
2天前
|
Java 应用服务中间件
SpringBoot获取项目文件的绝对路径和相对路径
SpringBoot获取项目文件的绝对路径和相对路径
25 1
SpringBoot获取项目文件的绝对路径和相对路径
|
13天前
|
XML Java Kotlin
springboot + minio + kkfile实现文件预览
本文介绍了如何在容器中安装和启动kkfileviewer,并通过Spring Boot集成MinIO实现文件上传与预览功能。首先,通过下载kkfileviewer源码并构建Docker镜像来部署文件预览服务。接着,在Spring Boot项目中添加MinIO依赖,配置MinIO客户端,并实现文件上传与获取预览链接的接口。最后,通过测试验证文件上传和预览功能的正确性。
springboot + minio + kkfile实现文件预览
|
2天前
|
存储 前端开发 JavaScript
|
2天前
|
存储 Java API
|
4天前
|
Java Spring 容器
SpringBoot读取配置文件的6种方式,包括:通过Environment、@PropertySource、@ConfigurationProperties、@Value读取配置信息
SpringBoot读取配置文件的6种方式,包括:通过Environment、@PropertySource、@ConfigurationProperties、@Value读取配置信息
20 3
|
15天前
|
druid Java Maven
|
23天前
|
Java 测试技术 Spring
springboot学习三:Spring Boot 配置文件语法、静态工具类读取配置文件、静态工具类读取配置文件
这篇文章介绍了Spring Boot中配置文件的语法、如何读取配置文件以及如何通过静态工具类读取配置文件。
29 0
springboot学习三:Spring Boot 配置文件语法、静态工具类读取配置文件、静态工具类读取配置文件
|
3天前
|
Java
SpringBoot获取文件将要上传的IP地址
SpringBoot获取文件将要上传的IP地址
13 0