CDI Integration
Spring Data Elasticsearch 存储库也可以使用 CDI 功能设置。
Example 1. Spring Data Elasticsearch repositories using CDI
class ElasticsearchTemplateProducer {
@Produces
@ApplicationScoped
public ElasticsearchOperations createElasticsearchTemplate() {
// ... 1
}
}
class ProductService {
private ProductRepository repository; 2
public Page<Product> findAvailableBookByName(String name, Pageable pageable) {
return repository.findByAvailableTrueAndNameStartingWith(name, pageable);
}
@Inject
public void setRepository(ProductRepository repository) {
this.repository = repository;
}
}
<1> 使用与在 xref:elasticsearch/template.adoc[Elasticsearch Operations] 一章中使用的相同的调用来创建组件。 <1> 让 CDI 框架将 Repository 注入到你的类中。