Spring Boot和配置文件

7

我有一个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

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

3个回答

6
你可以使用spring.profiles.active Spring属性来选择使用哪个application-[environment].properties文件。然后为每个环境创建多个文件。要设置环境,请在Java参数中传递 --spring.profiles.active=development

4
使用 application-{profile}.properties 格式为不同的配置文件创建不同的配置文件,例如 application-dev.properties 用于 dev,并在其中放置您特定于配置文件的配置。然后,在运行 Spring Boot 应用程序时,使用 SPRING_PROFILES_ACTIVE 环境变量或 spring.profiles.active 系统属性激活所需的配置文件。
由于您正在使用 Openshift,请在 .openshift/action_hooks 目录中的 build 文件中导出环境变量。类似于以下内容:
export JAVA_OPTS_EXT=-Dspring.profiles.active="dev"

更好的方法是使用rhc env set命令启用一个特定的配置文件:
rhc env set SPRING_PROFILES_ACTIVE=dev -a App_Name

您可以在此处了解有关在OpenShift中使用环境变量的更多信息:这里

1

有多种方法可以做到这一点。

  1. 使用Maven配置文件和资源插件,通过在您的application.properties中替换属性来提供特定于环境或配置文件的属性设置。

    这将帮助您入门

  2. 使用Spring Boot内置的支持将属性外部化为特定环境


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接