第八节:SpringBoot 指定配置文件配置三
SpringBoot 配置属性的规则
通过.分离各个元素
最后一个.将前缀与属性名称分开
必须是字母(az)和数字(0-9)
必须是小写字母
用连字符-来分隔单词
唯一允许的其他字符是[和],用于 List 的索引
不能以数字开头
相同的配置项
Spring Boot 2.x 加载配置文件的时候会移除特殊字符并且还会将配置均用全小写的方式进行匹配和加载。
application.properties
测试
浏览器访问
http://127.0.0.1:8080/rumenz/index
,返回rumenz
以上 4 个配置项是等价的,推荐全小写中间用
-
分割。
配置文件的优先级
application.properties 和 application.yml 文件可以在放在以下几个位置。
外部:应用程序运行目录的
config
子目录外部:应用程序运行目录的跟目录
内部:在 config 包里面
classpath:/config/
内部:在 classpath 根目录
classpath:/
application.properties
中配置了com.rumenz.level
测试
使用
mvn clean package
打包后,使用jar -jar lession8-0.0.1-SNAPSHOT.jar
运行。如果上述 4 个地方都定义了application.properties
,并且都配置了com.rumenz.level
,当我们的业务里面需要用com.rumenz.level
配置项。查找的优先级是:
1.先找运行目录下的 config 的
application.properties
中的com.rumenz.level
,找到返回,否则下一步2.再找运行目录下的
application.properties
中的com.rumenz.level
,找到返回否则下一步3.再找 classpath 下的 config 目录的
application.properties
的com.rumenz.level
,找到返回否则下一步4.再找 classpath 下的
application.properties
的com.rumenz.level
,找到就返回,找不到就报错,项目启动失败。
命令行参数配置
springboot 的
application.properties
中可以配置一些参数,如端口号,账号,密码。如果我们想在运行的时候想临时修改运行的端口也是可以的。
这样项目运行的端口就变成了
9000
,--server.port=9000
相当于在application.properties
中配置server.port=9000
系统环境变量
我们也可以在操作系统里面定义变量,然后通过
@Value
注入到 Spring 容器中。
浏览器访问
http://127.0.0.1:8080/rumenz/index2
,返回/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/go/bin:/usr/local/share/dotnet:~/.dotnet/tools:/usr/local/mysql/bin:/usr/local/mysql/bin
系统属性
我们可以设置
VM arguments
向 Spring 容器传递参数值。
Idea 中设置 VM arguments
测试
浏览器访问
http://127.0.0.1:8080/rumenz/index3
,返回test
jar 包运行设置VM arguments
浏览器访问
http://127.0.0.1:8080/rumenz/index3
,返回testvm
本小结源码地址:
GitHub:https://github.com/mifunc/springboot/tree/main/lession8
Gitee:https://gitee.com/rumenz/springboot/tree/master/lession8
https://rumenz.com/rumenbiji/springboot-config-file.html
我的博客 https://rumenz.com/ ,
我的工具箱 https://tooltt.com/
微信公众号:【入门小站】
关注【入门小站】回复【1001】获取 linux 常用命令速查手册
关注【入门小站】回复【1003】获取 LeetCode 题解【java 语言实现】
关注【入门小站】回复【1004】获取 Java 基础核心总结
关注【入门小站】回复【1009】获取 阿里巴巴 Java 开发手册
版权声明: 本文为 InfoQ 作者【入门小站】的原创文章。
原文链接:【http://xie.infoq.cn/article/5857814bfbe79a2403d4a21e2】。文章转载请联系作者。
评论