1.如何像SpringBoot那样来切换配置?
在使用Quarkus进行开发过程中,有时候需要在开发环境和测试环境经常切换,像SpringBoot 它是可以直接指定文件名后缀来使用不同的配置文件,而Quarkus貌似没有像SpringBoot那样的操作。
但是Quarkus在官网的操作文档上也为我们提供了一个方法用来切换配置文件!那就是…往下看👇
在Qaurkus的配置文件application.properties中,咱们可以使用%dev %test 这样的前缀来指定不同环境下的配置参数,例如:
%dev.quarkus.http.port = 8080
%test.quarkus.http.port = 8888
上面这个表示了在开发环境下咋们使用8080端口,而在测试环境下咱们使用8888端口。其他的配置也是如此只需要在频繁更换的配置项前面加上这样的前缀就可以了。
2.前缀加了之后,如何在程序中指定?
使用不同的配置我们只需要在打包的时候加上一个指令: -Dquarkus.profile=dev(这里等号后面的内容为你配置文件中需要选择的前缀,如果你是测试环境就-Dquarkus.profile=test)
完整打包命令👇:
mvn clean package -Pnative -Dquarkus.profile=dev/test
#### 这样打出来的包就会使用你指定的配置项
3.如果我们除了打包需要在本地启动程序?
我们可以在terminal 中使用命令:
mvn quarkus:dev -Dquarkus.profile=dev/test(这个根据需要选择是dev 还是test)
#### 这样跑起来的程序使用的配置就是我们所制定的配置参数
4.如何对程序进行Debug调试?
程序跑起来如果我们需要对它进行DEBUG调试,因为我们在配置文件中指定了不同的前缀如果我们直接使用mvn插件提供的debug(如下图),它只会使用dev前缀的配置。那如果我们需要用到test前缀的配置时就很麻烦。
那么我们可以这样进行操作:
命令: ①quarkus:dev -Dquarkus.profile=test -f pom.xml
② quarkus:dev -Dsuspend -Dquarkus.profile=test -f pom.xml
上述两个指令中②中加了一个-Dsuspend 这个是程序跑起来它会一直等着你打断点进入调试,而①就不会一直等着。进入程序的debug状态就是程序起来之后会出现一个Attach Debugger,点击它咱们就可以调试了
配置完成之后点击判断的启动按钮就可以跑指定配置参数的程序了。
这样整个不同环境的参数配置以及调试就通了。
如果跑起来之后出现中文乱码 ,在启动的配置 的 Runner下面的VM Options中加: -Dfile.encoding=GB2312 即可解决。
PS – 结语:
其实如果我们在项目启动的时候跟进去看它找配置文件参数时会发现如果我们没有指定前缀的情况下他们把每个参数都加一个%dev的前缀。所以开发环境下的debug我们直接debug跑启动类就行,其它环境我们再使用上述的方法进行调试即可!
谢谢!