部署技巧(一)如何巧妙利用外部配置文件部署springboot项目(避开开发环境数据库密码的泄露)

spingboot项目正式环境怎么部署,配置文件如何管理?

难道还是简单 java -jar xxxx.jar   或者 java - jar xx.jar -Dspring.config.location=/usr/local/demo/config/application-demo1.properties

请注意运行命令越复杂出现错误的可能性就越大。还有人说可以写ssh脚本。这个没错但是 也需要简单明了。这个时候我就教大家一个 java -jar xxxx.jar 就能够搞定正式环境springboot项目启动的方式。

不啰嗦,那么正式环境到底应该用怎么样的启动命令呢?

答案就是  java -jar xxxx.jar   。   是不是觉得我在废话。

这不就是官网的推荐么?  这个能够用么?    那配置文件怎么管理?正式环境的配置文件  总不能放到项目中让开发人员去看到吧?
对的这个就是解决问题的关键了。   那这个时候我们需要了解springboot项目加载配置文件的过程到底是怎么回事了

springboot 有读取外部配置文件的方法,如下优先级:

  • 第一种是在jar包的同一目录下建一个config文件夹,然后把配置文件放到这个文件夹下。

部署技巧(一)如何巧妙利用外部配置文件部署springboot项目(避开开发环境数据库密码的泄露)_第1张图片

部署技巧(一)如何巧妙利用外部配置文件部署springboot项目(避开开发环境数据库密码的泄露)_第2张图片

  • 第二种是直接把配置文件放到jar包的同级目录。

部署技巧(一)如何巧妙利用外部配置文件部署springboot项目(避开开发环境数据库密码的泄露)_第3张图片

  • 第三种在classpath下建一个config文件夹,然后把配置文件放进去。
  • 第四种是在classpath下直接放配置文件。

这个时候直接  java -jar xxx.jar 启动就行了。 是不是很简单啊

 

总结了一下springboot配置文件的优先级:

  • 内外都有配置文件,配置文件读取是有优先级,外配置文件优于内配置文件读取。(这个没疑问)。
  • 如果内配置文件里有外配置文件没有的配置,那两者互补。比如外配置文件没有配置数据库,内配置文件里配置了数据库,那内配置文件的配置会被使用。
  • 如果内配置文件里和外配置文件里都有相同的配置,比如两者都配置了数据库,但是两个连接的不同,那外配置文件会覆盖内配置文件里的配置

下篇文章,教大家如何把jar项目中lib文件夹剥离出来。只需要单独上传程序员写的代码。   题外话:现在随随便便一个spingboot项目 至少都是50M以上,对于网络不是很好的朋友来说,这个上传是很慢的。那么如何解决这个将项目纯净的上传呢。快速更新启动呢?

你可能感兴趣的:(springboot,高级架构师,spingboot配置文件)