Java 弹簧靴不';在以编程方式配置数据源时,是否选择spring.datasource.tomcat.*?
我正在配置两个数据源,并尝试设置池属性,根据文档,我应该使用spring.datasource.tomcat.*,这似乎与我正在进行的配置不兼容。我做错了什么?或者我错过了什么 My application.properties:Java 弹簧靴不';在以编程方式配置数据源时,是否选择spring.datasource.tomcat.*?,java,spring,tomcat,spring-boot,Java,Spring,Tomcat,Spring Boot,我正在配置两个数据源,并尝试设置池属性,根据文档,我应该使用spring.datasource.tomcat.*,这似乎与我正在进行的配置不兼容。我做错了什么?或者我错过了什么 My application.properties: spring.datasource.tomcat.test-on-borrow=true spring.datasource.tomcat.validationQuery=SELECT 1 spring.datasource.url=jdbc:mysql://loc
spring.datasource.tomcat.test-on-borrow=true
spring.datasource.tomcat.validationQuery=SELECT 1
spring.datasource.url=jdbc:mysql://localhost:3306/mydb
spring.datasource.username
spring.datasource.password
spring.read.datasource.tomcat.test-on-borrow=true
spring.read.datasource.tomcat.validationQuery=SELECT 1
spring.read.datasource.url=jdbc:mysql://localhost:3306/mydb
spring.read.datasource.username
spring.read.datasource.password
下面是我的配置类:
我有一个类似的读取数据源(用于不同的回购/实体)
如果我尝试使用spring.datasource.test on borrow=true,那么这就行了
我真的想知道为什么.tomcat.*样式不起作用?我能做些什么来让它工作呢
即使有人引导我阅读一些有助于理解这一点的阅读材料,我也会很高兴。:) 该文档是关于自动配置的,您没有使用它。如果您正在编写自定义代码来设置
数据源
,那么您也将负责配置的绑定
上面的代码有一个@configurationproperties(“spring.datasource”)
。如果删除该属性,则在您自己的代码中不会考虑任何spring.datasource.*
属性
解释基本属性(spring.datasource
)和数据源绑定(spring.datasource.xyz.*
)之间的区别
无论如何,如果您自己创建数据源
(为什么?)。重复使用spring.datasource
名称空间是相当令人困惑的,因为用户希望自动配置提供的功能得到尊重。而且他们不会,因为你正在编写自己的配置
spring.datasource.type=org.apache.tomcat.jdbc.pool.datasource
spring.read.datasource.type=org.apache.tomcat.jdbc.pool.datasource
我在我的应用程序.properties中添加了以下两行
spring.datasource.type=org.apache.tomcat.jdbc.pool.DataSource
spring.read.datasource.type=org.apache.tomcat.jdbc.pool.DataSource
它正在工作…谢谢。您使用的是哪个版本?我使用的是1.5.4,1.5.7中的情况也一样。数据源未拾取spring.DataSource.tomcat.*
properties。对我来说,甚至spring.datasource.test on borrow=true都不起作用。这里记录了一个问题:那么如何配置多个数据源以使池属性不受影响。(本例中为tomcat jdbc池)。文档中没有任何地方涉及到这一点,文档中完全涵盖了这一点(我在回答中给出了一个链接)。你看过了吗?找到了。我不知道连接属性也可以在同一命名空间中指定。感谢您的帮助,我自己创建了两个数据源bean,因为我想连接到一个写数据源和一个读数据源,并基于包名为这两个数据源启用jpa repos。这非常有用!我们将所有微服务更新为新的特定于池的配置,包括一个具有两个数据源的配置。对于自动配置的数据源,我们需要*datasource.tomcat.*
,而对于手动配置的数据源,则忽略池名,这不是很直观。在引入特定于池的属性之前,自动配置和手动数据源的结构都是相同的。然而,我不得不承认,从技术角度来看,这绝对是有道理的。
spring.datasource.type=org.apache.tomcat.jdbc.pool.DataSource
spring.read.datasource.type=org.apache.tomcat.jdbc.pool.DataSource