Spring Boot jars include metadata(元数据) files that provide details of all supported configuration properties. The files are designed to let IDE developers offer contextual(上下文的) help and “code completion” as users are working with
application.properties
orapplication.yml
files.The majority of the metadata file is generated automatically at compile(编译) time by processing all items annotated(带注释的) with
@ConfigurationProperties
. However, it is possible to write part of the metadata manually(手动地) for corner(极端的) cases or more advanced(先进的) use cases.
全局配置文件
application.properties、application.yml
application.properties、application.yml是SpringBoot支持的、对默认配置修的、全局配置文件。
命名和格式不能随意改。
作用是,因为SringBoot在底层已经帮我们默认自动配置过,如果想要修改默认的配置,可以通过全局配置文件来修改默认的配置。
application.yml
yaml的语法关键在于空格,并且对于大小写是敏感的。
空格不仅是格式,还可以控制层级。
K:<空格>V
对于v是字符串,不用双引号和单引号。
若使用双引号的话会将特殊字符转义;使用单引号则会原样输出,不会转义。
K是对象、map: V
name:
first: A
last: B
----------
name: {first: A, last: B}
K是列表、list: V
name:
- A
- B
- C
----------
name: [A,B,C]
之后需要在代码中添加注释。
@Component
@ConfigurationProperties(prefix="name")
//prefix="name"指从配置文件的name映射
application.properits
首先需要在propertis文件中写上配置。
name.first=A
name.last=B
name.list.value1=A
name.list.value2=B
name.list.value3=C
之后需要在代码中添加注释。
@Value("${name.first}")
//使用el表达式,从配置文件中取出
private String firstname;
简单的区别
-
@ConfigurationProperties不支持EL表达式
-
@Value只能一个个注释值
官方文档地址:https://docs.spring.io/spring-boot/docs/2.3.3.RELEASE/reference/htmlsingle/#configuration-metadata