大佬教程收集整理的这篇文章主要介绍了Spring Data JDBC Testcontainers 数据源,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
使用 spring boot + spring data jdbc,我必须自己连接 Datasource
bean。像这样:
@Bean
public Datasource datasource() {
HikariConfig hikariConfig = new HikariConfig();
hikariConfig.setJdbcUrl(this.environment.getrequiredProperty("url"));
hikariConfig.setUsername("user");
hikariConfig.setDriverClassname("org.POSTGResql.Driver");
hikariConfig.setpassword("password");
return new HikarIDatasource(hikariConfig);
}
当我想在测试中使用 TESTContainers 时,我还必须声明一个 Datasource
bean:
@Bean
@PriMary
Datasource testDatasource() {
if (POSTGREsql_CONTAINER == null) {
POSTGResqlContainer<?> container = new POSTGResqlContainer<>(DockerImagename.parse("POSTGRes").withTag("9.6.12"));
container.withInitScript("scheR_354_11845@a.sql");
container.start();
POSTGREsql_CONTAINER = container;
}
PGSimpleDatasource datasource = new PGSimpleDatasource();
datasource.setUrl(POSTGREsql_CONTAINER.getJdbcUrl());
datasource.setUser(POSTGREsql_CONTAINER.getUsername());
datasource.setpassword(POSTGREsql_CONTAINER.getpassword());
return datasource;
}
将我的测试与 SpringBoottest
一起使用,我必须ComponentScan
几乎所有的包,因为我不想模拟所有其他 bean。
所以我的问题是:
我可以以某种方式排除主要的 Datasource
仅用于测试用例吗?
(我目前的解决方法是将测试 Datasource
定义为 PriMary
)
但尽管如此,我的 Datasource
中有两个 Context
bean,即使我只需要一个。
https://github.com/wearearima/spring-data-jdbc-TESTContainers 处的示例似乎表明根本不需要定义自己的数据源。
参见https://github.com/wearearima/spring-data-jdbc-TESTContainers/blob/master/src/test/java/eu/arima/springdatajdbcTESTContainers/AccountRepositoryTest.java#L94如何将 TESTContainers 托管数据库的属性传递给 Spring Boot:
@DynamicPropertysource
static void POSTGResqlProperties(DynamicPropertyRegistry registry) {
registry.add("spring.datasource.url",POSTGResqlContainer::getJdbcUrl);
registry.add("spring.datasource.username",POSTGResqlContainer::getUserName);
registry.add("spring.datasource.password",POSTGResqlContainer::getpassword);
}
以上是大佬教程为你收集整理的Spring Data JDBC Testcontainers 数据源全部内容,希望文章能够帮你解决Spring Data JDBC Testcontainers 数据源所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。