配置文件+多环境配置+自定义属性

Posted zymbky

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了配置文件+多环境配置+自定义属性相关的知识,希望对你有一定的参考价值。

二、SpringBoot 配置文件

1、 配置文件的路径及优先级

<1>、配置文件的路径

SpringBoot 使用了一个全局的配置文件 application.properties,该配置文件可以放置在以下几个位置:

根目录下

项目根目录中 config 目录下

项目的 resources 目录下

项目 resources 目录中 config 目录下

 技术图片

 

 

<2>、配置文件的优先级

技术图片

 

 技术图片

经过测试,SpringBoot 项目中配置文件的读取顺序为:

1) config/application.properties(项目根目录中 config 目录下)

2) application.properties(项目根目录下)

3) resources/config/application.properties(项目 resources 目录中 config 目录下)

4) resources/application.properties(项目的 resources 目录下)

注意:

?1、如果同一个目录下,有 application.yml 也有 application.properties,默认先读取

application.properties

2、如果同一个配置属性,在多个配置文件都配置了,默认使用第 1 个读取到的,后面读取的不覆盖前 面读取到的

3、创建 SpringBoot 项目时,一般的配置文件放置在“项目的 resources 目录下”

 

1、配置文件的两种文件格式

SpringBoot 项目默认加载的配置文件除了 application.properties 文件,还支持 application.yml(也可以写成 application.yaml)文件

 技术图片

 

 

application.properties 配置文件的作用一样,只是文件内容写法不一样

(1)properties 文件

 技术图片

 

 

(2)yamlyml)文件

YAML Ain’t Markup Language,YAML 是一种简洁的非标记语言。YAML 以数据为中心,使用空白,缩进,分行组织数据,从而使得表示更加简洁易读

 

YAML 有以下基本规则:

<1>大小写敏感

<2>使用缩进表示层级关系

<3>禁止使用 tab 缩进,只能使用空格键

<4>缩进长度没有限制,只要元素对齐就表示这些元素属于一个层级

<5>使用#表示注释

<6>字符串可以不用引号标注

 技术图片

三、SpringBoot 多环境配置

1、多环境配置的引入

如果在项目中只有 application.properties(application.yml)一个配置文件的话,该文件中的属性值会经 常需要改动,就会使项目整体的体验变得非常差,而且出错率也极高。这时候,我们可以用 profile 在不同的环 境下配置不同的配置文件。这样一来,在 SpringBoot 项目中就出现了多环境的配置文件

2、多环境配置的设置

 技术图片

 

 

这是这个环境配置的代码

 技术图片

 

 

3、多环境配置的切换

 技术图片

 

 

四、自定义属性

1、配置文件中自定义属性

自定义的属性可以放到 application.properties(或 application.yml)全局配置文件中,也可以在自定义的其 他配置文件中定义。本课程以自定义的 stu.properties 为例

1、自定义的 stu.properties

 技术图片

 

 

2、如何读取自定义属性值到实体类

 两种方式:

<1>使用@Value 注解将属性值注入指定到beans

<2>使用@Configurationproperties注解将属性值绑定到特定结构化的beans

第一种 @Value

第一步:建Student1实体类

 技术图片

下面是

无参,有参,get/set方法,toString

 技术图片

 

 技术图片

第二步

创建controller

 技术图片

 

 

第三步:运行项目

 技术图片

 

 

第二种:@Configurationproperties

第一步:导入依赖

 技术图片

 

 

<dependency>

     <groupId>org.springframework.boot</groupId>

     <artifactId>spring-boot-configuration-processor</artifactId>

     <optional>true</optional>

</dependency>

第二步:创建Student2

 技术图片

 

 

第三步:还在原来的controllrt

 技术图片

 

 

第四步:运行项目

 技术图片

 

以上是关于配置文件+多环境配置+自定义属性的主要内容,如果未能解决你的问题,请参考以下文章

springboot自定义配置文件数量是变化的,属性相同,只是值不一样,怎样绑定到实体类?

Maven -- 多环境配置

Spring Boot:自定义属性配置和测试

在群晖的 Docker 中自定义配置 Redis

activiti modeler 任务节点自定义属性扩展

自定义配置文件提供程序:未找到设置属性“”-MVC3