当前位置: 首页 > 知识库问答 >
问题:

选择Spring Boot在CF中创建数据源时应使用的参数?

戚建白
2023-03-14

我有一个Spring Boot(1.3.3.RELEASE)/Cloud(Brixton.M5)的应用程序,MySQL部署在StackatoCF中,我使用CrudRepository。不幸的是,当应用程序启动时,Spring Boot会使用Stackato提供的一个JDBC URL自动配置数据源,其中包括用户名和密码,例如:。

jdbc:mysql://yourUser:yourPassword@172.16.1.48:3306/yourDB

不幸的是,Spring Boot显然认为之前的一切都是:是我的主机,而yourPassword@172.16.1.48:3306是端口,最后我遇到了一个严重错误。

以下是我在应用程序启动时看到的输出:

[app.0] 2016-05-27T15:25:59.000Z: 2016-05-27 08:25:59.266 INFO 148 --- [ main] urceCloudServiceBeanFactoryPostProcessor : Auto-reconfiguring beans of type javax.sql.DataSource
[app.0] 2016-05-27T15:25:59.000Z: 2016-05-27 08:25:59.303 INFO 148 --- [ main] o.c.r.o.s.c.s.r.PooledDataSourceCreator : Found Tomcat high-performance connection pool on the classpath. Using it for DataSource connection pooling.
[app.0] 2016-05-27T15:25:59.000Z: 2016-05-27 08:25:59.345 INFO 148 --- [ main] urceCloudServiceBeanFactoryPostProcessor : Reconfigured bean dataSource into singleton service connector org.apache.tomcat.jdbc.pool.DataSource@6a98a805{ConnectionPool[defaultAutoCommit=null; defaultReadOnly=null; defaultTransactionIsolation=-1; defaultCatalog=null; driverClassName=com.mysql.jdbc.Driver; maxActive=4; maxIdle=100; minIdle=0; initialSize=0; maxWait=30000; testOnBorrow=true; testOnReturn=false; timeBetweenEvictionRunsMillis=5000; numTestsPerEvictionRun=0; minEvictableIdleTimeMillis=60000; testWhileIdle=false; testOnConnect=false; password=********; url=jdbc:mysql://uk0pSal2suQS6:pajxAy1Yav22j@172.16.1.48:3306/dd558a39d22d44c059bb438d3b61941ef; username=null; validationQuery=/* ping */ SELECT 1; validationQueryTimeout=-1; validatorClassName=null; validationInterval=30000; accessToUnderlyingConnectionAllowed=true; removeAbandoned=false; removeAbandonedTimeout=60; logAba

下面是我后来发现的错误:

[app.0] 2016-05-27T18:23:19.000Z: 2016-05-27 11:23:19.767 WARN 148 --- [io-44230-exec-6] o.h.engine.jdbc.spi.SqlExceptionHelper : SQL Error: 0, SQLState: 01S00
[app.0] 2016-05-27T18:23:19.000Z: 2016-05-27 11:23:19.767 ERROR 148 --- [io-44230-exec-6] o.h.engine.jdbc.spi.SqlExceptionHelper : Illegal connection port value 'pajxAy1Yav22j@172.16.1.48:3306'

有什么建议可以在不丢弃CrudTemplate的情况下解决这个问题吗?:)

我已经尝试在配置文件中使用spring.datasource.username和spring.datasource.password设置正确的spring.datasource.url,但似乎Spring Boot/Cloud忽略了启动时的spring.datasource.url,而支持环境提供的变量。

共有1个答案

姜学海
2023-03-14

我发现的解决方法是,我遵循了在Cloud Foundry站点中使用Spring Boot绑定数据服务时描述的方法,有效地禁用了数据源的自动重新配置,这导致从配置文件中提取连接参数(与Stackato环境提供的变量相比)。

 类似资料:
  • 创建menagerie数据庫: mysql> CREATE DATABASE menagerie; 如果想在创建数据庫时,指定数据庫的字符编码(这里使用GBK),可以使用以下方式: mysql> create database menagerie DEFAULT CHARACTER SET gbk COLLATE gbk_chinese_ci; 或者使用utf8编码: mysql> CREAT

  • 我试图从这里用我当前的应用程序实现数据源代理 我在Spring xml中配置了数据源对象,即在dataSourceProxy对象中传递dataSourceReal。 侦听器和过滤器与文档中一样正确配置。 Spring xml文件: 数据源名称的JNDI名称的xml文件: 我得到了这个错误: 请帮忙。

  • 请帮我解决这个问题。抱歉,我无法格式化StackTrace。

  • 问题内容: 任何人都可以提供使用Oracle数据库在JBoss服务器(5.0)中创建数据源的步骤。 提前致谢 问题答案: 本示例假定您使用的是Oracle 10i 。 在JBoss 5中,创建一个以结尾的XML文件(尽管不一定必须是XML文件)。带有以下描述符元素。 这是做Local-TX数据源的示例。 您可以具有多个元素,但 必须 唯一。 对于XA数据源,请参见此处的示例。 上面的示例保存在中。

  • 问题内容: 在中,您可以使用来指定用于格式化字符串的参数。这允许在任意位置多次使用参数。 有没有办法用标准的Java做到这一点? 问题答案: 是。您可以定义参数的索引,请参阅API的“ 参数索引” 部分。 例如: 输出量 注意 以下所有习语都共享相同的格式定义:

  • 我用几个参数创建了自己的流程图块。其中两个是“代理”类型,我主要选择了相应的代理。我的块所做的是,它根据进入块的代理创建新的代理(有点像批处理块)。 到目前为止,我能够验证传入的代理,以确保在Main中选择了正确的代理类型。现在我想创建另一个带有源块和注入功能的代理。但是我的问题来了。我想根据选择的参数(类型代理)动态地创建代理。显然,在新代理字段中只输入参数的名称是行不通的(它确实有效,但只适用