前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >10-SpringBoot配置-项目外部配置加载顺序

10-SpringBoot配置-项目外部配置加载顺序

作者头像
Devops海洋的渔夫
发布2022-03-23 15:46:13
8580
发布2022-03-23 15:46:13
举报
文章被收录于专栏:Devops专栏

10-SpringBoot配置-项目外部配置加载顺序

项目外部配置加载顺序

外部配置文件的使用是为了对能不文件的配合

1.命令行

代码语言:javascript
复制
java -jar app.jar --name="Spring" --server.port=9000

2.指定配置文件位置

代码语言:javascript
复制
 java -jar myproject.jar --spring.config.location=e://application.properties

3.外部不带profile的properties文件

代码语言:javascript
复制
    classpath:/config/application.properties
    classpath:/application.properties

在官网查看外部配置的文档

https://docs.spring.io/spring-boot/docs/current/reference/html/spring-boot-features.html#boot-features-external-config

1.命令行传参数的方式

代码语言:javascript
复制
java –jar xxx.jar  --server.port=8083
1.1 首先将上一章节的项目打一个 jar 来启动看看
代码语言:javascript
复制
java -jar springboot-config-0.0.1-SNAPSHOT.jar

目前默认使用了配置文件的设置端口号8082,下面我们通过命令行传参的方式来启动,修改该端口号。

1.2 使用命令行传参,设置启动参数
代码语言:javascript
复制
java -jar springboot-config-0.0.1-SNAPSHOT.jar --server.port=8086

可以看到我们已经设置成功了一个参数了,那么能不能设置多个参数呢?当然可以。

代码语言:javascript
复制
java -jar springboot-config-0.0.1-SNAPSHOT.jar --server.port=8086 --server.servlet.context-path=/hehe

可以从结果看到,通过命令行传参的方式,的确是可以传递设置多个参数的。

不过这又带来了一个问题,那就是如果需要传递的参数很多,一个个在命令行传参的话,那还是很麻烦的。

那么有没有一种通过外部配置文件来管理的方式呢?这个是有的。

2. 指定外部配置文件位置的启动方式

https://docs.spring.io/spring-boot/docs/current/reference/html/features.html#features.external-config.files

代码语言:javascript
复制
$ java -jar myproject.jar --spring.config.location=\
    optional:classpath:/default.properties,\
    optional:classpath:/override.properties

上面这是配置外部配置文件的方式,下面我们将指定一个配置文件路径,执行加载看看修改的端口号效果:

2.1 将 application.properties 放到 D盘目录下:
代码语言:javascript
复制
server.port=8090
server.servlet.context-path=/hello
2.2 命令行传入外部配置文件的路径 启动服务
代码语言:javascript
复制
java -jar springboot-config-0.0.1-SNAPSHOT.jar --spring.config.location=d://application.properties

从结果来看,成功加载外部配置文件的设置参数了。

不过,我们还是想简单一些,每次都要写命令行传参还是挺麻烦的。

能不能有一些外部配置文件默认存放的位置,直接将配置文件往那个位置一丢,就会自动加载配置的呢?

当然有!!

3.将外部配置文件放置默认加载路径的方式

3.1 将 application.properties 放到 jar包的目录下:
代码语言:javascript
复制
server.port=8099
server.servlet.context-path=/hehe

此时,直接启动就会默认自动加载这个配置文件,我们来确认一下:

通过这个演示,我们确认了 jar 包同级目录下的配置文件将会被自动加载。

问题:而在之前只要是 config 目录下的配置文件优先级都会比较高,那么这个外部文件是否也是这样的呢?

3.2 将 application.properties 放到 jar包的目录下 config 文件夹:

新建config文件夹,将配置文件放入:

代码语言:javascript
复制
server.port=8999
server.servlet.context-path=/hahahahaha

image-20220222212717839

此时,我们来启动看看,会不会端口号为 8999

通过验证,我们确认 config 目录下的配置文件优先级更高!!

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-03-06,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 海洋的渔夫 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 10-SpringBoot配置-项目外部配置加载顺序
    • 项目外部配置加载顺序
      • 在官网查看外部配置的文档
        • 1.命令行传参数的方式
        • 2. 指定外部配置文件位置的启动方式
        • 3.将外部配置文件放置默认加载路径的方式
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档