I创建了一个示例项目,以在春季3.5.0-M1中尝试Vibur DBCP支持,它添加了Web,JDBC API,TestContainers,Postgres作为依赖项,并使用Java 21和Maven来构建项目。
可以在此处找到示例项目,https://github.com/hantsy/spring6-sandbox/tree/master/boot-vibur-dbcp
目前,Vibur支持仅存在于DataSourceBuilder
中,没有像其他DB池一样具有自动配置。有一个生成的postgres测试容器配置文件
配置了dev/Test阶段的postges docker实例。
类是用于应用程序的启动条目,该应用程序具有生成的Postgres实例和连接详细信息的空配置(DemoApplication
使用传统的测试范围注释并设置了Spring的连接详细信息,也效果很好。 我的问题是切换到新配置的基于vibur的
@TestConfiguration(proxyBeanMethods = false)
class TestcontainersConfiguration {
@Bean
@ServiceConnection
PostgreSQLContainer<?> postgresContainer() {
return new PostgreSQLContainer<>(DockerImageName.parse("postgres:latest"))
.withExposedPorts(5432);
}
}
配置ViburDataSourceTest
,有一个用于测试DynamicPropertyRegistry
-
,没有连接URL等的示例,它应该启动Postgres和Postgres和配置连接详细信息,但根本不起作用。
DataSourceBuilder
Postgres测试容器服务未按预期配置连接详细信息,以下项目以空值失败。
Repository
与使用相同的Postgres测试容器配置但使用默认的Hiariku池的the the the the。我相信您应该查看文档的服务连接
。服务连接是与任何远程服务的连接。春天 Boot的自动配置可以消耗服务的详细信息 连接并使用它们建立与远程服务的连接。
当这样做时,连接详细信息优先于任何连接相关的配置属性.