配置文件
2026年1月3日大约 2 分钟
配置文件
Spring Boot应用程序通常使用配置文件来定义各种设置,如数据库连接、服务器端口、日志级别等。常见的配置文件格式有application.properties和application.yml。
application.properties
略
application.yml
基本语法
- 数值前必须有空格,作为分隔符
- 使用缩进表示层级关系,并且缩进时**不允许使用
Tab键,只能使用空格(在idea中会自动将Tab转换为空格) - 缩进的空格数目不重要,但同一层级的属性必须使用相同数量的空格进行缩进
- 注释使用
#符号
定义对象/Map集合
person:
name: John
age: 30定义数组/列表
servers:
- server1
- server2
- server3注意
如果配置项的值以0开头,YAML会将其解析为八进制数,可能导致意外结果。
为避免这种情况,可以将值用引号括起来,例如:'0123'。
参数配置化
为了避免在代码中硬编码配置参数,可以将这些参数放在配置文件中,并通过@Value注解或@ConfigurationProperties注解将其注入到Spring Bean中。
使用@Value注解
- 具体用法:
@Value("${配置文件中的属性名}")。
@Value("${person.name}")
private String name;
@Value("${person.age}")
private int age;使用@ConfigurationProperties注解
- 作用:将配置文件中的一组相关属性映射到一个Java类中。
- 步骤:
- 创建一个Java类,并使用
@ConfigurationProperties(prefix = "前缀")注解标注该类,指定配置属性的前缀。 - 在类上添加
@Component注解,使其成为Spring Bean。 - 定义与配置属性对应的字段,并提供getter和setter方法。
- 创建一个Java类,并使用
- 示例:
@Data
@Component
@ConfigurationProperties(prefix = "person")
public class Person {
private String name;
private int age;
}- 配置文件:
person:
name: John
age: 30@Value 与 @ConfigurationProperties 区别
@Value适用于注入单个配置属性,语法简单,但不适合大量相关属性的注入。@ConfigurationProperties适用于注入一组相关属性,结构清晰,便于管理,但需要创建额外的Java类。