SpringBoot配置文件
Spring Boot 配置文件
Spring Boot 支持 application.properties 和 YAML(application.yml / application.yaml)。三种格式表达的是同一套属性模型,项目中选择一种保持一致即可。
YAML 语法
YAML 使用缩进表达层级:
代码块收起展开
server:
port: 8080
address: 127.0.0.1
user:
name: Tom
age: 18
gender: male
hobbies:
- Java
- Game
- Sport规则:
- 冒号后必须有空格。
- 缩进只用空格,不使用 Tab。
- 同级元素左侧对齐,具体空格数可以自定但必须一致。
#后是注释。- 含特殊字符、布尔歧义或前导零的值应加引号,例如
"0123"。
现代 YAML 解析器对前导零的行为与版本有关;配置中的电话、编号、日期等本来就是文本,显式加引号最稳妥。
properties 对照
代码块收起展开
server.port=8080
server.address=127.0.0.1
spring.application.name=javaweb-demo等价 YAML:
代码块收起展开
server:
port: 8080
address: 127.0.0.1
spring:
application:
name: javaweb-demo数据源与 MyBatis
代码块收起展开
spring:
datasource:
url: jdbc:mysql://localhost:3306/web
username: ${DB_USER}
password: ${DB_PASSWORD}
driver-class-name: com.mysql.cj.jdbc.Driver
mybatis:
configuration:
map-underscore-to-camel-case: true
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
mapper-locations: classpath:mapper/*.xmlSQL 标准输出只适合本地学习和排错,生产环境应使用受控日志级别并避免打印敏感参数。
绑定为配置对象
代码块收起展开
@ConfigurationProperties(prefix = "storage")
public record StorageProperties(
String endpoint,
String bucket,
Duration timeout) {
}集中绑定比在多个类中散落 @Value 更容易校验、测试和重构。配置类可配合 @Validated 与 Bean Validation。
环境与秘密
代码块收起展开
spring:
profiles:
active: ${SPRING_PROFILES_ACTIVE:dev}- 公共默认值放入版本库。
- 环境差异通过 Profile、环境变量、系统属性或配置中心注入。
- 密码、Token、私钥不能提交到 Git。
- 默认值只用于非敏感且安全的配置。
优先级理解
命令行参数、Java 系统属性、环境变量和配置文件可以覆盖同一属性。不要只背一个简化排序表;Spring Boot 版本和配置来源很多,排错时应查看最终 Environment,并使用 Actuator 的 env / configprops(注意访问控制)或启动日志确认来源。