将已弃用的 SimpleMongoDbFactory 修复为 SimpleMongoClientDbFactory 破坏嵌入式 Mongo 测试

Zej*_*uho 5 java embedded-database mongodb spring-boot

我从事的项目正在扩展 SimpleMongoFactory 以实现多租户

public class MultiTenantMongoFactory extends SimpleMongoDbFactory {
Run Code Online (Sandbox Code Playgroud)

从 Spring boot 2.1.10迁移到2.2.1后,我们尝试使用推荐的类来修复弃用警告

SimpleMongoClientDbFactory

编译和应用程序运行良好,但集成测试被破坏。

我的分析是自动配置类EmbeddedMongoAutoConfiguration代码:

@ConditionalOnClass({ MongoClient.class, MongoClientFactoryBean.class })
static class EmbeddedMongoClientDependsOnBeanFactoryPostProcessor
        extends MongoClientDependsOnBeanFactoryPostProcessor {

    EmbeddedMongoClientDependsOnBeanFactoryPostProcessor() {
        super(MongodExecutable.class);
    }

}
Run Code Online (Sandbox Code Playgroud)

这将调用:

super(MongoClient.class, MongoClientFactoryBean.class, dependsOn);
Run Code Online (Sandbox Code Playgroud)

仅适用于已弃用的com.mongodb.MongoClient,不推荐使用com.mongodb.client.MongoClient

这不是EmbeddedMongoAutoConfiguration可能与推荐类兼容的问题吗?

小智 0

尝试 mongoDB 的新 API:SimpleMongoClientDatabaseFactory