300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > Spring Boot 核心配置文件 yml 语法规范 多环境配置 配置文件加载顺序

Spring Boot 核心配置文件 yml 语法规范 多环境配置 配置文件加载顺序

时间:2020-03-28 10:09:37

相关推荐

Spring Boot 核心配置文件 yml 语法规范  多环境配置 配置文件加载顺序

目录

目录

Spring Boot 核心配置文件

Spring Boot YAML 语法规范

配置文件位置与加载顺序

外部配置加载位置与顺序

命令行参数

spring.config.location

Spring Boot 多环境配置

Spring Boot 核心配置文件

1、SpringBoot 的核心配置文件有两个:bootstrap (.yml 或者 .properties),application (.yml 或者 .properties)。

2、Spring Boot 中有两种上下文,一种是 bootstrap, 另外一种是 application, bootstrap 是应用程序的父上下文。两个上下文共用一个环境,它是任何 Spring 应用程序的外部属性的来源。

3、boostrap 由父 ApplicationContext 加载,比 applicaton 优先加载,都可以用来配置参数。

4、bootstrap 优于 application 加载;bootstrap 偏向系统层级的参数配置,Bootstrap 属性有高优先级,默认情况下,它们不会被本地配置覆盖。application 偏向应用层级的参数配置。

4、使用 Spring Cloud Config 配置中心时,这时需要在 bootstrap 配置文件中添加连接到配置中心的配置属性来加载外部配置中心的配置信息;

a、一些固定的不能被覆盖的属性

b、一些加密/解密的场景;

Spring Boot YAML 语法规范

1、Spring Boot 使用一个全局配置文件来对一些默认配置值进行修改,比如 Tomcat 端口等

2、配置文件名字约定为 “application.properties” 或者 “application.yml”

3、配置文件放必须放在 src/main/resources 目录或者类路径 /config 下

4、yml 全称 YAML(YAML Ain't Markup Language),以数据为中心,比 json、xml 等更适合做配置文件

5、语法规范参考网址:

YAML 语法

1、k:(空格)v:表示一对键值对,注意必须有空格,如 info: good

2、使用缩进表示层级关系,缩进时不允许使用Tab键,只允许使用空格,具体个数没有强制限制,只要相同层级的元素左侧对齐即可(通常约定使用两个2个空格)

3、大小写敏感,如:

配置文件位置与加载顺序

1、Spring boot 启动时自动扫描以下位置的 application.properties 或者 application.yml 文件作为 Spring boot 的默认配置文件。

2、优先级从上往下由高到底,高优先级的配置会覆盖低优先级的配置;Spring Boot 会从这四个位置加载所有的主配置文件,如果高优先级的内容与低优先级的内容相同,则覆盖;如果低优先级的内容在高优先级中没有,则形成互补。

3、应用启动后,1 位置的端口会生效,控制台会输出:Tomcat started on port(s): 8081 (http) with context path '/coco'

4、项目打包之后,与 jar 同目录下的位置相当于位置2,与 jar 同目录下的 config 子目录相当于位置 1.

外部配置加载位置与顺序

1、Spring Boot 支持多种外部配置方式,如下所示,从上往下加载优先级由高到低,内容相同时覆盖,不相同时累加。

2、官方文档:Externalized Configuration

命令行参数

1、命令行参数格式:java -jar xxxxx.jar --server.port=8082

2、多个参数时,用空格隔开,如:java -jar xxxxx.jar --server.port=8082 --server.servlet./context-path=/coco

3、修改端口同时指定上下文路径,命令行参数优先级高于 jar 文件内部的配置文件参数。

spring.config.location

1、通过 --spring.config.location 可以新的配置文件位置,自定义的外部配置文件优先级高于Jar文件内部的配置文件。

2、项目打包好以后,使用命令行参数的形式,启动项目的时候来指定配置文件的新位置:

3、当 application.properties 或 application.yml 文件在 xxx.jar 应用同目录下时,可以省略 --spring.config.location,直接双击运行,它会自动读取当前目录下的配置 application.properties 或 application.yml 文件。

Spring Boot 多环境配置

1、Profile 是 Spring 对不同环境提供不同配置功能的支持,可以通过激活、指定参数等方式快速切换环境

2、项目开发时有开发环境、测试环境、部署环境等,可以通过 profile 配置切换

3、spring.profiles.active 的值为多个时,用逗号隔开,官网文档。

方式1:多 profile 文件形式

1、格式:application-{profile}.properties/yml,如:application-dev.properties、application-prod.properties 等

2、Spring Boot 默认从全局配置文件 application.properties 和 application.yml 进入开始读取

3、然后在全局配置文件 application.properties 和 application.yml 激活使用 “spring.profiles.active=profile” 激活指定文件.

方式2:yml 文档块形式

1、yml 文件支持多文档块方式,同一个 yml 文件中,可以使用"---"来区分不同的文档,相当于不同的配置文件

2、这也是 Spring Boot 官方推荐的方式

spring:profiles:active: devel #指定激活哪个环境配置,激活后,第一个文档内容失效;不指定时,以第一个文档为准server:port: 8083--- #"---"用于分隔不同的profiles()文档块spring:profiles: devel #指定环境标识为"devel",相当于"application-{profile}.properties/yml"中的profileserver:port: 8081---spring:profiles: deploy #指定环境标识为"deploy",相当于"application-{profile}.properties/yml"中的profileserver:port: 8082

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。