CDI 集成

存储库接口的实例通常由容器创建,在使用 Spring Data 时,Spring 是最自然的选择。 Spring Data LDAP 包括一个自定义 CDI 扩展,允许您在 CDI 环境中使用存储库抽象。 该扩展是 JAR 的一部分。 要激活它,请将 Spring Data LDAP JAR 拖放到 Classpath 中。 现在,您可以通过为 实现 的 CDI 创建器来设置基础设施,如下例所示:LdapTemplatespring-doc.cn

class LdapTemplateProducer {

    @Produces
    @ApplicationScoped
    public LdapOperations createLdapTemplate() {

        ContextSource contextSource = …
        return new LdapTemplate(contextSource);
    }
}

每当容器请求存储库类型的 Bean 时,Spring Data LDAP CDI 扩展都会选取 作为 CDI Bean,并为 Spring Data 存储库创建代理。 因此,获取 Spring Data 存储库的实例是声明注入属性的问题,如下例所示:LdapTemplatespring-doc.cn

class RepositoryClient {

  @Inject
  PersonRepository repository;

  public void businessMethod() {
    List<Person> people = repository.findAll();
  }
}