application.properties是spring boot默认配置文件,用于集中管理环境参数,支持层级键名、多环境配置(如application-dev.properties)、@value和@configurationproperties注入,且外部配置优先级高于jar内配置。

Spring Boot 项目中,application.properties 是最常用的配置文件,用于集中管理应用的环境参数。它默认放在 src/main/resources/ 目录下,启动时由 Spring Boot 自动加载,无需额外代码。
基础写法与命名规范
每行一个键值对,用 = 分隔,支持层级结构(用英文点号 . 连接):
-
server.port=8081—— 修改内嵌 Tomcat 端口 -
spring.application.name=myapp—— 设置应用名称 -
logging.level.com.example=DEBUG—— 指定包的日志级别 -
my.feature.enabled=true—— 自定义布尔开关
注意:键名推荐全小写 + 中划线(如 spring.profiles.active),但 Spring 会自动将中划线、下划线、驼峰转为统一格式匹配(例如 myConfigPath 和 my-config-path 等价)。
多环境配置与激活方式
通过不同后缀的配置文件支持多环境,如:
-
application-dev.properties(开发) -
application-prod.properties(生产)
在主 application.properties 中指定激活哪个环境:
-
spring.profiles.active=dev—— 启动时加载application-dev.properties - 可同时激活多个:
spring.profiles.active=dev,redis - 也可通过命令行覆盖:
--spring.profiles.active=prod
读取配置的常用方式
配置值可通过以下方式注入到 Java 类中:
-
@Value 注解:直接注入单个属性,如
@Value("${server.port:8080}") int port(冒号后是默认值) -
@ConfigurationProperties:绑定一组前缀相同的配置,需配合
@EnableConfigurationProperties或@ConfigurationPropertiesScan -
Environment 接口:在任意 Bean 中注入
Environment,调用getProperty("key")动态获取
使用 @ConfigurationProperties 时,类需有对应 setter 方法或使用 record / 构造器绑定,并建议加上 @Validated 做校验。
优先级与外部化配置
Spring Boot 配置有明确的加载顺序,**越靠后的来源优先级越高**。常见顺序(从低到高):
- jar 包内的
application.properties - jar 包外的
application.properties(如与 jar 同目录) - 命令行参数(
--server.port=9090) - 系统环境变量(如
SPRING_PROFILES_ACTIVE=prod)
这意味着你可以不改代码,仅靠启动参数或环境变量切换配置,适合容器化部署。
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南











