SpringBoot 中的配置
配置文件
SpringBoot 配置文件为:
application.properties
。形式:main_key.sub=value
。不能写注释。- 【推荐】
application.yml
,application.yaml
。格式采用 YAML 格式,可以写注释。
外部配置的属性注入方法:
- 使用
@Value
注解通常用于外部配置的属性注入,具体用法为:@Value("${配置文件中的key}")
。 - 但是遇到复杂参数名的话,其注解可能会比较长且繁琐。我们可以使用
@ConfigurationProperties
简化开发。
@Value
和 @ConfigurationProperties
的不同点:
@Value
注解只能一个一个的进行外部属性的注入。@ConfigurationProperties
可以批量的将外部的属性配置注入到 bean 对象的属性中。
示例
1 | # application.yml |
@Value
方式:
1 |
|
使用 @ConfigurationProperties
方式,注意成员变量的命名要和配置文件中的键名对应:
1 | // 新建一个配置类 |
可选操作:pom.xml
引入以下依赖,用于帮助 IDEA 识别 @ConfigurationProperties
中的 prefix,消去 IDEA 的警告,并且 IDEA 提供配置的自动补全。
1 | <dependency> |
这个依赖安装与否都不影响程序的正确运行。
配置方式
SpringBoot 除了支持配置文件属性配置,还支持 Java 系统属性和命令行参数的方式进行属性配置。
- Java 系统属性:
-Dserver.port=9000
。- IDEA 中在 Run/Debug Configurations -> 你的 Spring 项目 ->VM options 中配置。
- java 指令运行 jar 包:
java -Dserver.port=9000 -jar your.jar
- 命令行参数:
--server.port=10010
。- IDEA 中在 Run/Debug Configurations -> 你的 Spring 项目 -> Program arguments 中配置
- java 指令运行 jar 包:
java -jar your.jar --server.port=10010
SpringBoot 同时启动多项目: https://blog.csdn.net/weixin_44606481/article/details/132694434
SpringBoot 项目打包操作依赖
进行打包时需要引入 spring-boot-maven-plugin
。不过基于官方骨架创建项目,会自动添加这个插件。
关于 SpringBoot 项目的部署方式详见本站文章:SpringBoot 项目的上线方式。
配置优先级
多个配置文件同时存在时,配置文件优先级从高到低依次为:
application.properties
application.yml
application.yaml
虽然 springboot 支持多种格式配置文件,但是在项目开发时,推荐统一使用一种格式的配置(yml 是主流)。
属性配置方式的优先级从高到低依次为:
- 命令行参数
- Java 系统属性
五种配置方式的优先级从高到低依次为:
- 命令行参数
- Java 系统属性
application.properties
application.yml
application.yaml
官方文档:核心特性 (springdoc.cn)
更多
关于读取配置文件更骚的操作详看本站文章:单例模式的应用——为 Java 程序应用全局配置
本文参考
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 半方池水半方田!
评论