从应用程序属性而不是从环境中加载Spring数据源值

时间:2019-04-16 08:57:59

标签: spring-boot spring-data-jpa amazon-elastic-beanstalk

我有一个带有spring-boot-starter-data-jpa的springbot 1.x应用程序。此应用程序具有application.properties以及用于连接的数据,例如

spring.datasource.url=jdbc:mysql://localhost/mydb
spring.datasource.username=mydb
spring.datasource.password=mydb

我能够将此应用程序部署到aws弹性beantalk中,并且一切正常。 弹性beantalk与用于应用程序EB.properties的配置文件EB一起运行

-Dspring.profiles.active=EB

数据源配置设置为弹性beantalk环境属性,例如

SPRING_DATASOURCE_PASSWORD --> password_into_beanstalk
SPRING_DATASOURCE_URL  --> jdbc:mysql://rds_into_aws/rds_into_aws
SPRING_DATASOURCE_USERNAME  --> username_into_beanstalk

我将此应用程序迁移到springboot2.X,但是当部署到弹性beantalk中时,无法连接到数据库。

org.springframework.jdbc.support.MetaDataAccessException: Could not get Connection for extracting meta-data; nested exception is org.springframework.jdbc.CannotGetJdbcConnectionException: Failed to obtain JDBC Connection; nested exception is java.sql.SQLNonTransientConnectionException: Could not create connection to database server. Attempted reconnect 3 times. Giving up.

正在运行的配置文件也是EB,我可以查看日志

[localhost-startStop-1] c.m.e.h.a.c.SpringServletInitializer     : The following profiles are active: EB

我猜想beantalk的环境属性不会覆盖数据源配置。

如果我将rds数据源值设置为application.properties,则该应用程序可以连接到数据库。

任何人都有相同的问题或知道发生了什么事

0 个答案:

没有答案