springboot配置热加载_idea如何启动springboot项目_springboot指定配置文件启动

如果使用了多种方式配合同一个配置项,优先级高的生效。

这里有几个注意点:①在给项目打包之前先使用 clean 命令,特别是在上一次的结果影响本次的操作时。clean 的本质就是:该命令会删除项目路径下的 target 文件,但是不会删除本地的 maven 仓库已经生成的 jar 文件

②我们的配置文件中偶尔有可能写中文(==注意我说的是配置文件==),这样可能造成打包失败,我们要在 filecoding 中,将设置改成如下图所示:

多环境开发的兼容问题(Maven 与 SpringBoot)

我们前面在 Maven 中也提到过多环境开发,既然这样如果 maven 中配置有多环境开发,springboot 中也配置有多环境开发,那他们两个谁做主呢?

就比如说你 maven 中配置的是以开发环境为主,springboot 中配置的是以测试环境为主,那么我们启动项目的时候,究竟启动的是哪一个环境?

我们可以思考一个问题,最终我们的 springboot 工程是在服务器上启动,再说的直白点,我们最终启动是那个打好了的 jar 包。而这个 jar 是 maven 帮我们做的(执行 package 命令之后得到),所以我们可以知道 maven 里面的 profile 应该是启主导作用的,而我们 boot 里面的多环境开发仅仅相当于 maven 打包过程中的工具。

所以:maven 为主,boot 为辅

idea如何启动springboot项目_springboot配置热加载_springboot指定配置文件启动

接下来我们尝试用 maven 控制版本springboot指定配置文件启动,用 boot 加载 maven 中设置的版本。

步骤一:Maven 中设置多环境属性

idea如何启动springboot项目_springboot指定配置文件启动_springboot配置热加载

步骤二:SpringBoot 中引用 Maven 属性

springboot配置热加载_springboot指定配置文件启动_idea如何启动springboot项目

当我们最终启动的时候效果如下:

springboot配置热加载_springboot指定配置文件启动_idea如何启动springboot项目

如果就这样子去打包还是不会成功的,因为你此处的占位符不会被解析springboot指定配置文件启动,我们要扩大解析的范围,所以说:

步骤三:对资源文件开启默认占位符的解析

idea如何启动springboot项目_springboot配置热加载_springboot指定配置文件启动

如此才能完成解析:

idea如何启动springboot项目_springboot指定配置文件启动_springboot配置热加载

配置文件分类

idea如何启动springboot项目_springboot配置热加载_springboot指定配置文件启动

有这样的场景,我们开发完毕后需要测试人员进行测试,由于测试环境和开发环境的很多配置都不相同,所以测试人员在运行我们的工程时需要临时修改很多配置,如下

java –jar springboot.jar –-spring.profiles.active=test --server.port=85 --server.servlet.context-path=/heima --server.tomcat.connection-timeout=-1 …… …… …… …… ……

针对这种情况,SpringBoot 定义了配置文件不同的放置的位置;而放在不同位置的优先级时不同的。

SpringBoot 中 4 级配置文件放置位置:

==说明==:级别越高优先级越高

1 级与 2 级留做系统打包后设置通用属性 3 级与 4 级用于系统开发阶段设置通用属性

我们演示一下他们的优先级:

环境准备

创建一个名为 springboot_06_config_file 的 SpringBoot 工程,目录结构如下

idea如何启动springboot项目_springboot配置热加载_springboot指定配置文件启动

在 resources 下创建一个名为 config 的目录,在该目录中创建 application.yml 配置文件,而在该配置文件中将端口号设置为 81,内容如下

server:
  port: 81

而在 resources 下创建的 application.yml 配置文件中并将端口号设置为 80,内容如下

server:
  port: 80

验证 1 级和 2 级的优先级

运行启动引导类,可以在控制台看到如下日志信息

springboot配置热加载_idea如何启动springboot项目_springboot指定配置文件启动

通过这个结果可以得出==类路径下的 config 下的配置文件优先于类路径下的配置文件。==

验证 3 级和 4 级的优先级

要验证 4 级,按照以下步骤完成

  java -jar springboot_06_config_file-0.0.1-SNAPSHOT.jar

运行后日志信息如下

idea如何启动springboot项目_springboot指定配置文件启动_springboot配置热加载

通过这个结果可以得出 file: config 下的配置文件优先于类路径下的配置文件。

原文链接;

限时特惠:本站每日持续更新海量展厅资源,一年会员只需29.9元,全站资源免费下载
站长微信:zhanting688