ManagedConnectionFactory 実装で複数の @ConnectionDefinitions を使用するユースケースを示す例が見つかりません。私を混乱させるのは、単一の @ConnectionDefinition アノテーションでは、定義ごとに @ConfigProperty を提供できないことです。@ConfigProperty のみを使用して、ManagedConnectionFactory のすべてのインスタンスのデフォルト プロパティを設定できます。すべての接続定義は、異なる ConnectionFactory インターフェースを使用する必要があります。したがって、次のようなことをしたと仮定します。
@ConnectionDefinitions(value = {
@ConnectionDefinition(
connection = com.company.product.connector.MyConnection.class,
connectionFactory = com.company.product.connector.ConnectionFactory1.class,
connectionFactoryImpl = com.company.product.connector.ConnectionFactory1Impl.class,
connectionImpl = com.company.product.connector.MyConnectionImpl.class
)
@ConnectionDefinition(
connection = com.company.product.connector.MyConnection.class,
connectionFactory = com.company.product.connector.ConnectionFactory2.class,
connectionFactoryImpl = com.company.product.connector.ConnectionFactory2Impl.class,
connectionImpl = com.company.product.connector.MyConnectionImpl.class
)
})
public class MyManagedConnectionFactory implements
ManagedConnectionFactory, ResourceAdapterAssociation {
@Override
public Object createConnectionFactory(ConnectionManager connectionManager)
throws ResourceException {
//Return the connection factory.
}
}
createConnectionFactory() は、ConnectionFactory1 または ConnectionFactory2 を返すかどうかをどのように判断しますか? とにかく誰かが ra.xml を介して注釈をオーバーライドしない限り、config-property を条件として使用する方法がわかりません。
ManagedConnectionFactory がどの接続定義の一部であるかを判断するのは難しいようですが、ConnectionFactory ごとに別の ManagedConnectionFactory を持つことができるのに、なぜこれを行うのでしょうか?
例は非常に役に立ちます。