CDI 整合

倉庫介面的例項通常由容器建立,而在使用 Spring Data 時,Spring 是最自然的選擇。從 1.3.0 版本開始,Spring Data MongoDB 附帶了一個自定義 CDI 擴充套件,允許您在 CDI 環境中使用倉庫抽象。該擴充套件是 JAR 的一部分。要啟用它,只需將 Spring Data MongoDB JAR 放入您的類路徑即可。現在,您可以透過為 MongoTemplate 實現 CDI Producer 來設定基礎設施,如下例所示:

class MongoTemplateProducer {

    @Produces
    @ApplicationScoped
    public MongoOperations createMongoTemplate() {

        MongoDatabaseFactory factory = new SimpleMongoClientDatabaseFactory(MongoClients.create(), "database");
        return new MongoTemplate(factory);
    }
}

Spring Data MongoDB CDI 擴充套件會獲取可用的 MongoTemplate 作為 CDI Bean,並在容器請求倉庫型別的 Bean 時為 Spring Data 倉庫建立代理。因此,獲取 Spring Data 倉庫例項只需宣告一個 @Inject 註解的屬性,如下例所示:

class RepositoryClient {

  @Inject
  PersonRepository repository;

  public void businessMethod() {
    List<Person> people = repository.findAll();
  }
}
© . This site is unofficial and not affiliated with VMware.