我正在尝试定义一个类似于Spring的数据源URL:
spring:
datasource:
url: "jdbc:${vcap.services.compose-for-mysql.credentials.uri}?useSSL=true&requireSSL=true&verifyServerCertificate=true"
username: ${vcap.services.compose-for-mysql.credentials.username}
password: ${vcap.services.compose-for-mysql.credentials.password}
driver-class-name: com.mysql.jdbc.Driver
vcap.services.compose-for-mysql.credentials.uri
设置为mysql://xxxx:xxxx@xxxx.1.dblayer.com:28018/compose
的位置。
我需要网址看起来像这样:
jdbc:mysql://xxxx:xxxx@xxxx.1.dblayer.com:28018/compose?useSSL=true&requireSSL=true&verifyServerCertificate=true
但是,Spring似乎无法处理这个问题:
无法获取JDBC连接;嵌套异常是java.sql.SQLException:驱动程序:com.mysql.jdbc.Driver@6c6efbc8为URL返回null:jdbc:$ {vcap.services.compose-for-mysql.credentials.uri}?useSSL = true& requireSSL =真安培; verifyServerCertificate =真
有没有办法可以使用yaml文件构建url,还是需要使用其他方法,比如xml配置?
更新
我试过了:
url: ${'jdbc:'}${vcap.services.compose-for-mysql.credentials.uri}{'?useSSL=true&requireSSL=true&verifyServerCertificate=true'}
但是得到错误:
java.lang.IllegalArgumentException: URL must start with 'jdbc'
也尝试过:
url: jdbc:${vcap.services.compose-for-mysql.credentials.uri}?useSSL=true&requireSSL=true&verifyServerCertificate=true
但是得到错误:
Driver:com.mysql.jdbc.Driver@567443ab returned null for URL:jdbc:${vcap.services.compose-for-mysql.credentials.uri}?useSSL=true&requireSSL=true&verifyServerCertificate=true