龙空技术网

Spring Boot 配置文件说明,yml 语法规范

九天银河888 148

前言:

今天兄弟们对“小程序外部链接如何加参数文件”大约比较注重,看官们都需要学习一些“小程序外部链接如何加参数文件”的相关文章。那么小编也在网上搜集了一些有关“小程序外部链接如何加参数文件””的相关资讯,希望同学们能喜欢,兄弟们一起来了解一下吧!

配置文件

1.Spring Boot的配置文件有两个:bootstrap和application,均可以以.yml 或者.properties扩展名结尾。

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

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

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

5.使用 Spring Cloud Config 配置中心时,这时需要在 bootstrap 配置文件中添加连接到配置中心的配置属性来加载外部配置中心的配置信息;比如一些固定的不能被覆盖的属性或者加密/解密的场景;

properties与yml的区别

1.在properties文件中是以”.”进行分割的,在yml中是用”:”进行分割;

2.yml的数据格式和json的格式很像,都是K-V格式,并且通过”:”进行赋值;

3.在yml中缩进一定不能使用TAB,否则会报很奇怪的错误;

4.yml每个key的冒号后面一定都要加一个空格;列表的“-”后面也要加空格。

5.使用spring cloud的maven进行构造的项目,在把properties换成yml后,一定要进行mvn clean install

6.yml是跨语言的:可以在包括JAVA,go,python等大量的语言中使用,比如做云计算使用go和java的时候,可以通过配置中心使用同一份配置!

7.yml配置文件支持列表,properties只支持键值对数据。

8.AML支持多种数据类型,如字符串、数字、布尔值、数组、对象等,可以更好地表示复杂的数据结构。而Properties只支持字符串类型,不支持其他数据类型。

9.yml是支持中文内容的,properties想使用中文要用unicode编码。

10.顺序问题,properties是不保证加载顺序的,yml有先后顺序,比如springcloud的zuul网关路由配置,如果一个uri同时满足两个匹配规则,properties你是不知道它到底使用了哪个规则的,而yml则一定是使用了靠后的那个路由规则。Java 的 Properties 加载属性文件后是无法保证输出的顺序与文件中一致的,因为 Properties 是继承自Hashtable,key/value 都是直接存在 Hashtable中的,而Hashtable是不保证进出顺序的。

YAML 数据结构

对象:键值对的集合,常用写法。k: v:在下一行来写对象的属性和值的关系;注意缩进.冒号后面跟空格来分开键值;

person:  name: 小明  age: 20

或用行内写法:

person: {name: 小明,age: 18}

List:一组按次序排列的值。“- ”表示数组中的一个元素,注意缩进和空格。

name: ‐ 小明 ‐ 小红 ‐ 小刚

或用行内写法:

name: [小明,小红,小刚]

数组:用逗号分隔

name:    arr: 小明,小红,小刚

字面量:单个的、不可再分的值

k: v字面量直接写,值(v)可以是“数字”、“字符串”、“布尔”、“日期”

字符串默认不使用单引号或者双引号

双引号不会转义字符串里面的特殊字符,特殊字符会作为本身想表示的意思,,如:name: "小明 \n 小红":输出的结果是:小明 换行 小红

单引号会转义字符串中的特殊字符,特殊字符最终只是一个普通的字符串数据,如:name: ‘小明 \n 小红’:输出结果为:小明 \n 小红

配置文件位置与加载顺序

1.存放位置

–file:./config/ -------------整个项目根目录下的config目录下

–file:./ ---------------------整个项目根目录下

–classpath:/config/---------类路径下的config目录下

–classpath:/-----------------类路径根目录下

2.加载顺序优先级

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

外部配置加载位置与顺序

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

1.命令行参数。

2.来自 java:comp/env 的 JNDI 属性。

3.使用“spring.config.location”改变默认的配置文件位置。

4.Java 系统属性(System.getProperties())。

5.操作系统环境变量。

6.RandomValuePropertySource 配置的 random.* 属性值。

7.jar 包外部的 application-{profile}.properties 或 application.yml (带spring.profile) 配置文件。

8.jar 包内部的 application-{profile}.properties 或 application.yml (带spring.profile) 配置文件。

9.jar 包外部的 application.properties 或 application.yml (不带spring.profile) 配置文件。

10.jar 包内部的 application.properties 或 application.yml (不带spring.profile) 配置文件。

11.@Configuration注解类上的@PropertySource。

12.通过SpringApplication.setDefaultProperties指定的默认属性。

欢迎点赞、关注、转发,私信可获取免费springboot视频教程!!!

标签: #小程序外部链接如何加参数文件