欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Spring Boot 配置文件application.yml

程序员文章站 2022-04-30 15:19:24
...

在Spring Boot项目中application.properties文件或者application.yml文件就是Spring Boot项目的配置文件。但是不单单从 application.properties 获取配置,所以我们可以在程序中多种设置配置属性。按照以下列表的优先级排列:

1.命令行参数
2.java:comp/env 里的 JNDI 属性
3.JVM 系统属性
4.操作系统环境变量
5.RandomValuePropertySource 属性类生成的 random.* 属性
6.应用以外的 application.properties(或 yml)文件
7.打包在应用内的 application.properties(或 yml)文件
8.在应用 @Configuration 配置类中,用 @PropertySource 注解声明的属性文件
9.SpringApplication.setDefaultProperties 声明的默认属性

可见,命令行参数优先级最高。这个可以根据这个优先级,可以在测试或生产环境中快速地修改配置参数值,而不需要重新打包和部署应用。还有第 6 点,根据这个在多 moudle 的项目中,比如常见的项目分 api 、service、dao 等 moudles,往往会加一个 deploy moudle 去打包该业务各个子 moudle,应用以外的配置优先。

关于配置文件,我建议使用application.yml文件,因为提供了结构化几嵌套的格式,也是实际开发中使用的。如,我们可以修改Tomcat的端口、上下文路径和字符集。注意冒号后面要加一个空格

Spring Boot 配置文件application.yml

启动项目

Spring Boot 配置文件application.yml

自定义属性

除了Spring Boot提供的属性外,我们还可以自定义属性

Spring Boot 配置文件application.yml

如果有汉字的话记得改yml文件的编码为UTF-8否则读取会乱码

再建一个Controller类,通过value属性取到自定义属性的值

Spring Boot 配置文件application.yml

启动项目,访问请求

Spring Boot 配置文件application.yml


假如我们要配置一个类别下的多个属性按上述方式就容易代码冗余了,我们可以使用ConfigurationProperties配置方式

新建一个PersonProperties类 把所有属性都配置上去

比如这样

Spring Boot 配置文件application.yml

接下来定义一个实体类,

执行前缀person

以及加上@Component作为组件 方便其他地方注入

Spring Boot 配置文件application.yml

注意:ConfigurationProperties需要引入依赖,我们在pom文件添加依赖

<dependency>
	<groupId>org.springframework.boot</groupId>
	<artifactId>spring-boot-configuration-processor</artifactId>
	<optional>true</optional>
</dependency>

最后在Controller类里加一个方法

Spring Boot 配置文件application.yml

浏览器如下所示

Spring Boot 配置文件application.yml

多环境配置

很多场景的配置,比如数据库配置、Redis 配置、注册中心和日志配置等。在不同的环境,我们需要不同的包去运行项目。所有我们再加上两个配置文件:

application-dev.yml  开发环境

application-prod.yml 生产环境

我们可以分别在里面写各自的配置,只要在application.yml配置文件中指定spring.profiles.active的值即可加载对应的配置文件。

Spring Boot 配置文件application.yml

Spring Boot 配置文件application.yml

Spring Boot 配置文件application.yml

Spring Boot 配置文件application.yml

相关标签: Spring Boot yml