一个很多人不知道的SpringBoot小技能!! 忘是亡心i 2021-09-07 06:21 291阅读 0赞 **大家好,我是冰河~~** 最近,发现很多小伙伴在修改了SpringBoot的配置文件后,都要重新编译整个项目,极大的浪费了开发时间。我身边就有很多小伙伴一直是这样做的。那么,有没有什么方式能够修改配置文件后,不再编译整个项目呢?且听冰河细细道来~~ ## springboot配置文件 ## SpringBoot中最经典的配置文件就是application.yml,在SpringBoot项目打包部署的过程中,application.yml文件也会被一同打包进项目中。咋一看,如果我们修改了application.yml文件的配置信息,那么,我们是不是需要重新编译并打包整个SpringBoot项目?这也太麻烦了吧! 其实,SpringBoot提供了一种机制,修改了application.yml的配置文件后,不需要重新编译并打包整个项目。 **前提是:不能把配置信息写死到你的Java代码里。** 那么,我们如何才能避免修改application.yml文件修改后,重新编译打包整个项目呢? 相信很多小伙伴第一时间就能够想到了,我可以在命令行启动项目时添加SpringBoot的配置参数呀,没错,这确实是一种方式。 例如,如果我们打包后的项目端口为8080,此时需要将8080端口修改为8888,那么我们可以使用如下命令启动SpringBoot项目时将端口修改为8888。 java -jar xxx.jar --server.port=8888 不过如果我们修改的参数比较多时,尤其是在application.yml文件中定义了很多自定义参数,并且这些参数在部署到分布式系统中的每个节点,都需要调整时,这种在命令行修改参数配置的方式就显得不那么方便了。 所以,今天,冰河说的不是这种方式。那是哪种方式呢? ![在这里插入图片描述][watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2wxMDI4Mzg2ODA0_size_16_color_FFFFFF_t_70_pic_center] 别急,我们继续往下看~~ ## 动态加载文件 ## 冰河这里要说的是SpringBoot在项目启动的时候,可以动态加载配置文件,那具体怎么做呢?我们一起往下看。 说直接点:就是 **把项目的配置文件放在src目录以外,在服务启动脚本中指定外部配置文件的位置** 比如,在Linux系统中部署SpringBoot项目时,我们可以按照如下方式部署。 (1)把项目源码包中的application.yml文件,放到其他目录下,避免项目再次将它识别为配置文件,并读取里面的内容。 (2)编译打包项目,并向打包后的文件上传到服务器上(**注意:在打包前已经将application.yml放到了其他目录下,打包后的jar包中是没有application.yml文件的**)。 (3)如果我们使用shell脚本的方式启动jar包的话,我们需要修改下shell脚本的内容。例如,修改前的脚本内容如下所示。 #!/bin/sh kill -9 `ps -ef|grep java | grep gat-0.0.1.jar | awk '{print $2}'` > /dev/null 2>&1 java -jar xxx.jar --server.port=8081 > /dev/null 2>&1 & 修改后的脚本内容如下所示。 #!/bin/sh kill -9 `ps -ef|grep java | grep gat-0.0.1.jar | awk '{print $2}'` > /dev/null 2>&1 java -jar xxx.jar --spring.config.location=conf/application.yml --server.port=8888 > /dev/null 2>&1 & 这里,我们添加了 `--spring.config.location=conf/application.yml` 代码,`--server.port=8888` 是指定服务的端口号。`spring.config.location=conf/application.yml` 这个参数就是指定外部application.yml配置文件位置的参数,在运行jar包的命令中加入这个参数就可以指定jar包以外的配置文件的位置了。 **好了,今天就到这儿吧,我是冰河,大家有啥问题可以在下方留言,也可以加我微信:sun\_shine\_lyz,我拉你进群,一起交流技术,一起进阶,一起牛逼~~** [watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2wxMDI4Mzg2ODA0_size_16_color_FFFFFF_t_70_pic_center]: /images/20210901/8129e71f62664408b7c6ce6d3de3b62c.png
相关 用了这么久SpringBoot却还不知道的一个小技巧 前言 > 你可能调第三方接口喜欢启动application,修改,再启动,再修改,顺便还有个不喜欢写JUnitTest的习惯。 > 你可能有一天想要在SpringBoo た 入场券/ 2023年10月15日 14:54/ 0 赞/ 15 阅读
相关 用了这么久SpringBoot却还不知道的一个小技巧 前言 > 你可能调第三方接口喜欢启动application,修改,再启动,再修改,顺便还有个不喜欢写JUnitTest的习惯。 > 你可能有一天想要在SpringBoo 野性酷女/ 2023年10月15日 14:32/ 0 赞/ 11 阅读
相关 超实用 :大部分的人都不知道的一个Python技巧 今天给大家分享一个Python开发实用小干货:如何将Python公共函数设置全局可用。 ![在这里插入图片描述][391f9dc561ae48f48f8b99bf9b8b7b 旧城等待,/ 2023年09月27日 09:58/ 0 赞/ 12 阅读
相关 时间复杂度分析,这个很多人都不知道,更别谈会了! 时间复杂度 请原谅我也是一个标题党! 关于时间复杂度和空间复杂度分析的文章其实不少,但大多数都充斥着复杂的数学计算,让很多读者感到困惑,我就不跟大家扯皮了,关于什么是渐 太过爱你忘了你带给我的痛/ 2023年01月11日 03:58/ 0 赞/ 100 阅读
相关 Python实用小技能,一个比一个高级! ![format_png][] 在当今企业纷纷推动数字化运营的背景下,“No Data, No BB”成了职场人的口头禅。做一份好的数据分析报告,大到成为能否帮助企业做出正确 男娘i/ 2023年01月03日 15:26/ 0 赞/ 93 阅读
相关 你们觉得很可笑,但是很多人信的,真的很多很多。。 —THE END— 文章推荐 ☞ 李源潮:我在数学系的日子 ☞ 我的博士五年 ☞ 为什么梯度反方向是函数值下降最快的方向? ☞ 7年赚的2个 ﹏ヽ暗。殇╰゛Y/ 2022年08月28日 03:50/ 0 赞/ 365 阅读
相关 这个问题很多人都答不上来 新春及至,这个时候一般都是程序员们加班的大好时节! 为大家想了个题目,动动脑筋,轻松一下。 拿一张纸,然后对折,你会发现,折痕是一条直线,那么你是否想过,折痕为什么总是一条 左手的ㄟ右手/ 2022年08月24日 14:09/ 0 赞/ 186 阅读
相关 【十个】工资是职场最大的陷阱,可怕的是很多人还不知道…… 工资是职场最大的陷阱,可怕的是很多人还不知道…… 2018-03-08 ![分割线][640_wx_fmt_gif_tp_webp_wxfrom_5_wx_lazy_ 梦里梦外;/ 2022年05月30日 09:27/ 0 赞/ 139 阅读
相关 一个很多人不知道的SpringBoot小技能!! 大家好,我是冰河~~ 最近,发现很多小伙伴在修改了SpringBoot的配置文件后,都要重新编译整个项目,极大的浪费了开发时间。我身边就有很多小伙伴一直是这样做的。那么,有没 忘是亡心i/ 2021年09月07日 06:21/ 0 赞/ 292 阅读
还没有评论,来说两句吧...