【发布时间】:2025-11-29 01:20:21
【问题描述】:
我正在尝试使用 spring boot+jpa +hibernate 开发微服务。但是每次我运行我的代码时,它都会默认创建 10 个与数据库(postgresql)的连接。我配置了我的 application.yml 但它仍然没有覆盖数据源属性。有人可以帮我摆脱困境吗?
spring:
dataSource:
tomcat:
max-active: 5
max-idle: 5
min-idle: 5
initial-size: 5
commitOnReturn: True
maxAge: 300000
min-evictable-idle-time-millis: 20000
max-threads: 10
validation-query: SELECT 1
test-on-borrow: true
validation-interval: 300000
在这里,我将添加我的 GetApp.java 类。检查一下:
package com.pwc.nic.main;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration;
import org.springframework.boot.autoconfigure.jdbc.
DataSourceTransactionManagerAutoConfiguration;
进口
org.springframework.boot.autoconfigure.orm.jpa.HibernateJpaAutoConfiguration;
@SpringBootApplication( 排除 = {
DataSourceAutoConfiguration.class,
HibernateJpaAutoConfiguration.class,
DataSourceTransactionManagerAutoConfiguration.class
},
scanBasePackages = { "com.pwc.nic" })
公共类 GetApp {
public static void main(String[] args) {
SpringApplication.run(GetApp.class, args);
}
}
【问题讨论】:
-
我猜你配置了错误的数据源。为什么是 spring.datasource.tomcat 而不是 spring.datasource.hikari?
-
但是我使用的@SimonMartinelli 数据源是由tomcat 而不是hikari。这就是我使用上述配置的原因。如有任何疑问,请恢复。
-
我怀疑 Tomcat 数据源没有被使用。使用配置显式设置数据源:spring.datasource.type=org.apache.tomcat.jdbc.pool.DataSource 再试一次
-
但是如果你使用 tomcat 数据源你必须在 tomcat configuratoin 中配置它而不是在 Spring Boot 中
-
@Ajinkya 根据您的建议,我在 application.yml 文件中使用了 spring.datasource.type=org.apache.tomcat.jdbc.pool.DataSource 但它没有用。但没有。连接数为 10。
标签: postgresql hibernate tomcat spring-data-jpa