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 注入到你的类中。