CDI 整合
倉庫介面的例項通常由容器建立,而 Spring 是使用 Spring Data 時最自然的選擇。 從 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 擴充套件會拾取可作為 CDI bean 使用的 MongoTemplate
,並在容器請求倉庫型別的 bean 時為 Spring Data 倉庫建立一個代理。 因此,獲取 Spring Data 倉庫的例項就是宣告一個 @Inject
注入屬性的問題,如下例所示
class RepositoryClient {
@Inject
PersonRepository repository;
public void businessMethod() {
List<Person> people = repository.findAll();
}
}