MongoAutoConfiguration 不创建 MongoClient bean

MongoAutoConfiguration does not create MongoClient bean

我刚看完
我正在尝试像这样实现它。但我总是得到

Field mongoClient in MorphiaAutoConfiguration required a bean of type 'com.mongodb.MongoClient' that could not be found.

如果我对文档的理解正确,MongoAutoConfiguration 应该会自动创建一个 MongoClient bean。 因为我没有停用此配置,所以应该加载它,因为我的 Main class 上的 @SpringBootApplication 注释。我的错误在哪里?

如果我使用 Morphia 2.2.6,一切正常。为了以防万一有人想知道细节,我会在这里解释一下一直困扰着我的事情。

我的旧版本使用 'dev.morphia.morphia:core:1.6.1' 而这个 class

import com.mongodb.MongoClient; // Bad example; this code will not run!
import dev.morphia.Datastore;
import dev.morphia.Morphia;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

@Configuration
public class MorphiaAutoConfiguration {

  @Autowired
  private MongoClient mongoClient; // will not be created from MongoAutoConfiguration !!!!!

  @Bean
  public Datastore datastore() {
    return new Morphia().createDatastore(mongoClient, "mongodb");
  }
}

现在我正在使用 'dev.morphia.morphia:morphia-core:2.2.6'

import com.mongodb.client.MongoClient;
import dev.morphia.Datastore;
import dev.morphia.Morphia;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

@Configuration
public class MorphiaAutoConfiguration {

  @Autowired
  private MongoClient mongoClient; // created from MongoAutoConfiguration

  @Bean
  public Datastore datastore() {
    return Morphia.createDatastore(mongoClient, "mongodb");
  }
}

请注意,MongoClient 来自另一个包。所以我的服务提供了一个 com.mongodb.client.MongoClient Bean 但没有 com.mongodb.MongoClient Bean,因此我很困惑。