【问题标题】:Elastic Beanstalk deployment of Spring Boot application - where to put the external application.propertiesSpring Boot 应用程序的 Elastic Beanstalk 部署 - 将外部 application.properties 放在哪里
【发布时间】:2016-10-06 09:58:11
【问题描述】:
我正在使用 AWSCLI 将 Spring Boot 应用程序部署到 AWS Elastic Beanstalk。我想将包含客户规范配置(数据库凭据等)的外部 application.properties 文件放在应用程序的同一目录中。应用程序应该选择这个属性文件。我怎样才能做到这一点?有其他选择吗?
【问题讨论】:
标签:
spring-mvc
amazon-web-services
deployment
spring-boot
amazon-elastic-beanstalk
【解决方案1】:
此项目允许您为一个或多个应用程序使用外部集中配置存储库。如果属性发生更改,您无需重新构建应用程序。您可以简单地更改配置存储库中的属性,甚至将更改推送到您的所有应用程序。
看到这个Getting Started Guide。
对于您描述的场景,我建议采用上述方法。我不会为您的配置文件在应用程序服务器上有一个单独的目录而烦恼。 Spring Cloud Config 是一种很好的方法,因为它解决了您描述的问题以及更多问题。
【解决方案2】:
您也可以在 application-prod 属性中指定它们,例如
server.port=5000
spring.datasource.url=jdbc:mysql://${RDS_HOSTNAME}:${RDS_PORT}/${RDS_DB_NAME}
spring.datasource.username=${RDS_USERNAME}
spring.datasource.password=${RDS_PASSWORD}
spring.jpa.hibernate.ddl-auto=create
并指定一个名为 SPRING_PROFILES_ACTIVE 的环境变量,其值 prod 使 beanstalk 足够聪明,可以从那里挑选值。