适用于不同环境的关键云中的Springboot应用程序

时间:2017-10-04 12:55:17

标签: spring-boot spring-cloud pivotal-cloud-foundry pivotal-web-services

我正在使用具有不同测试环境的Pivotal Cloud代工厂(测试,QA,UAT,PROD)Spring启动应用程序 我创建了多个属性文件(每个指向不同的数据库),如

application-dev.properties
application-test.properties
application-qa.properties
application-uat.properties
application-prod.properties

如果它在本地我正在运行,请设置-Dspring.progiles.active=test/qa/uat/prod

mvn clean compile springboot:run -Dspring.progiles.active=test

如何根据云中的环境自定义我的应用程序以使用特定的属性文件? 我需要更改所有配置?下面是我的application.properties文件。

spring.profiles.active=test

spring.datasource.url=
spring.datasource.username=
spring.datasource.password=
spring.datasource.driver-class =org.hibernate.dialect.TeradataDialect
spring.jpa.database-platform=org.hibernate.dialect.TeradataDialect
spring.jpa.show-sql = true
spring.jpa.hibernate.ddl-auto = none
spring.jpa.properties.hibernate.default_schema=

spring.jpa.properties.hibernate.dialect= org.hibernate.dialect.TeradataDialect
server.port=9090

logging.level.org.springframework.web=INFO
logging.level.org.hibernate=INFO
logging.file=myapplication.log

或者每当我搬到更高的环境时,我是否需要改变?

提前致谢

2 个答案:

答案 0 :(得分:0)

您必须利用Spring Cloud Config Server将所有属性文件移至GIT。在您的应用程序中,使用bootstrap.yml文件与Config Server连接,您将提供类似prod,dev,qa的环境名称。

答案 1 :(得分:0)

您可以为所有环境创建一个applicaiton.yml文件,并分隔特定于环境的清单文件。使用spring profile功能添加特定于环境的属性。 Spring将根据活动环境配置文件和清单文件自动选择属性。

示例application.yml可以有

弹簧:   个人资料:默认   用户名:xyz

弹簧:   简介:发展   用户名:abc

在环境特定的清单文件中你可以拥有 ENV:   SPRING_PROFILES_ACTIVE:开发