Datasourcebuilder和SpringtestContainers

问题描述 投票:0回答:0

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

),它拾取了默认的Hiariku池并运行良好。

url/username/password

使用传统的测试范围注释并设置了Spring的连接详细信息,也效果很好。
我的问题是切换到新配置的基于vibur的
@TestConfiguration(proxyBeanMethods = false) class TestcontainersConfiguration { @Bean @ServiceConnection PostgreSQLContainer<?> postgresContainer() { return new PostgreSQLContainer<>(DockerImageName.parse("postgres:latest")) .withExposedPorts(5432); } } 配置
ViburDataSourceTest
,有一个用于测试

DynamicPropertyRegistry
 -

DataSource

,没有连接URL等的示例,它应该启动Postgres和Postgres和配置连接详细信息,但根本不起作用。
DataSourceBuilder
Postgres测试容器服务未按预期配置连接详细信息,以下项目以空值失败。

Repository

与使用相同的Postgres测试容器配置但使用默认的Hiariku池的the the the the。
    
我相信您应该查看文档的服务连接
服务连接是与任何远程服务的连接。春天 Boot的自动配置可以消耗服务的详细信息 连接并使用它们建立与远程服务的连接。
当这样做时,连接详细信息优先于任何
连接相关的配置属性

.

    

spring-boot spring-jdbc testcontainers
最新问题
© www.soinside.com 2019 - 2025. All rights reserved.