Spring Dataリポジトリー・インターフェース用に作成されたプロキシーを保管するかどうかの決定は、構成のセットアップによってのみ行われます。次の設定があると仮定します:
@Configuration
@EnableJpaRepositories("com.acme.foo")
@EnableMongoRepositories("com.acme.foo")
class Config { }
これは、パッケージcom.acme.foo
のインターフェイスとして、ある時点で爆発します。 どちらもMongoDBとJPAインフラストラクチャによって検出されます。これを解決するために、JavaConfigとXMLの両方のサポートにより、包含フィルターと除外フィルターを定義できるため、命名規則や追加の注釈などを使用できます。
@Configuration
@EnableJpaRepositories(basePackages = "com.acme.foo",
includeFilters = @Filter(JpaRepo.class))
@EnableMongoRepositories(base Packages = "com.acme.foo",
includeFilters = @Filter(MongoRepo.class))
class Config { }
この場合、2つのアノテーション@JpaRepo
および@MongoRepo
(ユーザーが作成する)は、関連するリポジトリインターフェースに注釈を付けることで、検出を選択的にトリガーするために使用されます。
リポジトリインターフェイス宣言だけからターゲットとするストアを特定するのは困難であり、Bean定義が作成された時点では、それ以上のインフラストラクチャについてもわからないため、実際の自動検出は不可能です( EntityManager
など)まだ。