spring-boot 配置文件详解:Properties和YAML

一.配置文件的生效顺序,会对值进行覆盖:
1. @TestPropertySource 注解
2. 命令行参数
3. Java系统属性(System.getProperties())
4. 操作系统环境变量
5. 只有在random.*里包含的属性会产生一个RandomValuePropertySource
6. 在打包的jar外的应用程序配置文件(application.properties,包含YAML和profile变量)
7. 在打包的jar内的应用程序配置文件(application.properties,包含YAML和profile变量)
8. 在@Configuration类上的@PropertySource注解
9. 默认属性(使用SpringApplication.setDefaultProperties指定)

二.配置随机值

withmes.secret=${random.value}
withmes.number=${random.int}
withmes.bignumber=${random.long}
withmes.number.less.than.ten=${random.int(10)}
withmes.number.in.range=${random.int[1024,65536]}

读取使用注解:@Value(value = "${withmes.secret}")

注:出现黄点提示,是要提示配置元数据,可以不配置

三.属性占位符
当application.properties里的值被使用时,它们会被存在的Environment过滤,所以你能够引用先前定义的值(比如,系统属性)。

withmes.name=www.withmes.com
withmes.desc=${withmes.name} is a domain name

四.Application属性文件,按优先级排序,位置高的将覆盖位置低的
1. 当前目录下的一个/config子目录
2. 当前目录
3. 一个classpath下的/config包
4. classpath根路径(root)

这个列表是按优先级排序的(列表中位置高的将覆盖位置低的)

五. 配置应用端口和其他配置的介绍
#端口配置:

server.port=8090

时间格式化

spring.jackson.date-format=yyyy-MM-dd HH:mm:ss

时区设置

spring.jackson.time-zone=Asia/Chongqing

六. 使用YAML代替Properties
注意写法:冒号后要加个空格
例如:第二行开头用tab

withmes:  
  adders: 1221

多环境配置

例如现在项目有测试环境和生产环境,测试环境和生产环境的服务器地址是不同的,那么可以使用多环境配置
1,首先在 application.properties 中

意思是 激活 spring.profiles.active-test 文件中的配置

spring.profiles.active=test

这样就可以灵活的配置测试环境和生产环境不同的一些信息,而不需要修改大量代码

logback(日志配置)

spring boot默认会加载classpath:logback-spring.xml或者classpath:logback-spring.groovy

使用自定义配置文件,配置方式为:
logging.config=classpath:logback-withmes.xml
注意:不要使用logback这个来命名,否则spring boot将不能完全实例化

1.使用基于spring boot的配置
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<include resource="org/springframework/boot/logging/logback/base.xml"/>
<logger name="org.springframework.web" level="DEBUG"/>
</configuration>


2.使用log4j2
![123](https://img-blog.csdn.net/20180421225644465?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxOTIwNDQ3OTM5/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70)

去除logback的依赖包,添加log4j2的依赖包
<exclusions>
                <exclusion>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-starter-logging</artifactId>
                </exclusion>
            </exclusions>

<!-- 使用log4j2 -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-log4j2</artifactId>
        </dependency>
然后在
application.properties 配置 
logging.config=classpath:yourlog4j2name.xml
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值