配置文件介绍
单体版的配置文件存放在lamp-boot-server/src/main/resources目录,系统中用到的配置文件主要为:bootstrap.yml、application.yml、config/${spring.profiles.active}/xxx.yml。
文件区别
bootstrap.yml在application.yml之前加载。bootstrap.yml用于应用程序上下文的引导阶段,由父Spring ApplicationContext加载。
bootstrap.yml:主要用于系统级别的参数配置,这些参数通常不会变动。application.yml:用于定义应用级别的参数,适用于应用程序特有的配置信息。
而config目录下的文件,则是为了解决application.yml文件中配置内容过长不易维护而诞生的。现将application.yml中的应用级别的参数,按照功能和环境进行拆分,变成生如下的目录结构:
├── application.yml # 应用级参数: 不知道如何拆分的配置,可以放在application.yml或common.yml
├── bootstrap-prod.yml # 系统级别参数
├── bootstrap.yml # 系统级别参数
├── config
│ ├── dev # 开发环境配置
│ │ ├── common.yml # 应用级参数: 通用配置(不知道如何拆分的配置,可以放在application.yml或common.yml)
│ │ ├── doc.yml # 应用级参数: swagger文档配置
│ │ ├── mysql.yml # 应用级参数: 数据库、mybatis等相关配置
│ │ ├── oss.yml # 应用级参数: 文件存储配置
│ │ ├── rabbitmq.yml # 应用级参数: 消息队列配置
│ │ └── redis.yml # 应用级参数: 缓存配置
│ └── prod # 生产环境配置
│ ├── common.yml
│ ├── doc.yml
│ ├── mysql.yml
│ ├── oss.yml
│ ├── rabbitmq.yml
│ └── redis.yml
配置文件优先级
java17 分支使用 spring boot 3.1.x: application-${spring.profiles.active}.yml
>= ./application.yml
>= /config/{spring.profiles.active}/*.yml
>= bootstrap-{spring.profiles.active}.yml
>= bootstrap.yml
java8 分支使用 spring boot 2.7.x: application-${spring.profiles.active}.yml
>= /config/{spring.profiles.active}/*.yml
>= ./application.yml
>= bootstrap-{spring.profiles.active}.yml
>= bootstrap.yml
config中文件的优先级,取决于import顺序
spring:
config:
# import的文件顺序越靠后,优先级越大
import:
- classpath:config/${spring.profiles.active}/common.yml
- classpath:config/${spring.profiles.active}/doc.yml
- classpath:config/${spring.profiles.active}/oss.yml
- classpath:config/${spring.profiles.active}/rabbitmq.yml
- classpath:config/${spring.profiles.active}/redis.yml
- classpath:config/${spring.profiles.active}/mysql.yml
指定开发环境
开发环境启动项目时,需要激活spring.profiles.group=dev
配置,则需要使用以下命令来启动:
java -jar -Dspring.profiles.active=dev lamp-boot-server.jar
启动后,可以在日志中看到如下日志:
[top.tangyh.lamp.BaseServerApplication.logStartupProfileInfo:674] The following profiles are active: dev
生产环境启动项目时,上方application.yml配置文件中:xxx = prod。
# 生产环境启动
java -jar -Dspring.profiles.active=prod lamp-boot-server.jar
❗️❗️❗️若评论区无法显示,请使用"手机热点"或"科学上网"。