Quarkus实战:专为Kubernetes而优化的Java解决方案
上QQ阅读APP看书,第一时间看更新

4.8 使用自定义profile进行配置

问题

如何为创建的自定义profile设置不同的配置值?

解决方案

到目前为止,你已经看到了Quarkus内置的profile,我们可以为同一个属性设置不同的配置值,并使它们适应不同的环境。使用Quarkus,你也可以设置自己的profile。

你唯一需要做的就是通过quarkus.profile系统属性或QUARKUS_PROFILE环境变量来指定你想要启用的profile。如果两者都设置了,则系统属性优先于环境变量。

之后需要创建带有profile名称的属性,并将当前的profile设置为该名称。让我们创建一个新的staging profile,它覆盖Quarkus的监听端口。

打开src/main/resources/application.properties文件,并设置当staging profile启用时,Quarkus的启动端口为8182:

然后启动应用程序并启用staging profile:

上面的实例使用了系统属性的方法启用profile,不过你也可以使用QUARKUS_PROFILE环境变量来设置它。

讨论

如果你想在测试环境中设置要使用的profile,只需要在构建脚本中把quarkus.test.profile系统属性设置为给定的profile。例如,在Maven中:

或者,在Gradle中:

另外,你也可以调整默认的生产profile。Quarkus内置的profile是prod,所以在没有指定profile的情况下运行应用程序时,prod就是默认的profile。但是你可以在构建时改变默认的profile,这样在没有指定任何profile的情况下,你设置的profile就是应用程序运行时的默认profile。

你需要做的就是使用quarkus.profile系统属性构建应用程序,并将你想要的profile值设置为默认值:

❶该命令设置默认使用prod-kubernetes profile