Spring启动和配置文件

Ant*_*nio 5 java spring spring-boot

我有一些配置的Spring Boot应用程序.我想指定不同的配置值,devproduction.我的application.properties文件看起来像这样:

spring.datasource.url=jdbc:mysql://devhost:devport/devschema
spring.datasource.username=devuser
spring.datasource.password=mypwd
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
Run Code Online (Sandbox Code Playgroud)

这个文件在Openshift上我的git repo中.每次我提交,Openshift开始部署应用程序,所以我需要application.properties具有正确的值.是否可以使用类似配置文件来更改配置?

Ali*_*ani 5

使用application-{profile}.properties格式为不同的配置文件创建不同的属性文件,例如application-dev.propertiesfor dev,并将您的配置文件特定配置放入其中。然后,当您运行 spring boot 应用程序时,使用SPRING_PROFILES_ACTIVE环境变量或spring.profiles.active系统属性激活您想要的配置文件。

由于您使用的是 Openshift,因此您可以build.openshift/action_hooks目录中的文件中导出环境变量。像这样的东西:

export JAVA_OPTS_EXT=-Dspring.profiles.active="dev"
Run Code Online (Sandbox Code Playgroud)

更好的方法是使用rhc env set命令来启用一个特定的配置文件:

rhc env set SPRING_PROFILES_ACTIVE=dev -a App_Name
Run Code Online (Sandbox Code Playgroud)

您可以在此处阅读有关在 openshift 中使用环境变量的更多信息


Jos*_*nez 5

您可以使用spring.profiles.activeSpring 属性来选择application-[environment].properties要使用的文件。然后创建多个文件,每个环境一个。要设置环境,只需--spring.profiles.active=development在您的 Java 参数中传递它。