Spring Boot 配置文件application.yml

在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提供的属性外,我们还可以自定义属性


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

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


启动项目,访问请求



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

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

比如这样


接下来定义一个实体类,

执行前缀person

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


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

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

最后在Controller类里加一个方法


浏览器如下所示


多环境配置

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

application-dev.yml  开发环境

application-prod.yml 生产环境

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





  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值