CDI 統合

リポジトリインターフェースのインスタンスは通常、コンテナーによって作成されます。Spring Data を使用する場合は、Spring が最も自然な選択です。Spring Data LDAP には、CDI 環境でリポジトリ抽象化を使用できるようにするカスタム CDI 拡張機能が含まれています。拡張機能は JAR の一部です。これをアクティブにするには、Spring Data LDAP JAR をクラスパスにドロップします。次の例に示すように、LdapTemplate の CDI プロデューサーを実装してインフラストラクチャをセットアップできるようになりました。

class LdapTemplateProducer {

    @Produces
    @ApplicationScoped
    public LdapOperations createLdapTemplate() {

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

Spring Data LDAP CDI 拡張機能は、コンテナーによってリポジトリ型の Bean がリクエストされるたびに、LdapTemplate を CDI Bean として選択し、Spring Data リポジトリのプロキシを作成します。次の例に示すように、Spring Data リポジトリのインスタンスを取得するには、注入されたプロパティを宣言する必要があります。

class RepositoryClient {

  @Inject
  PersonRepository repository;

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