public class SpringContextResourceAdapter extends ObjectSE implements ResourceAdapterEE
ApplicationContext
をロードする JCA 1.7 ResourceAdapter
EE 実装。ResourceAdapter のライフサイクルの一部として Spring 管理 Bean を開始および停止します。HTTP エントリポイントを必要とせず、メッセージエンドポイントとスケジュールされたジョブなどで構成されるアプリケーションコンテキストに最適です。このようなコンテキストの Bean は、JTA トランザクションマネージャー、JNDI にバインドされた JDBC DataSources および JMS ConnectionFactory インスタンスなどのアプリケーションサーバーリソースを使用することができ、プラットフォームの JMX サーバーに登録することもできます。これらはすべて、Spring の標準的なトランザクション管理、JNDI および JMX サポート機能を介して行われます。
非同期作業をスケジュールする必要が生じた場合は、Spring の WorkManagerTaskExecutor
を標準の Bean 定義として使用し、依存性注入を通じてアプリケーション Bean に注入することを検討してください。この WorkManagerTaskExecutor は、この ResourceAdapter に提供されている BootstrapContext からの JCA WorkManager を自動的に使用します。
JCA BootstrapContext
EE には、BootstrapContextAware
インターフェースを実装するアプリケーションコンポーネントを介して直接アクセスすることもできます。この ResourceAdapter を使用してデプロイすると、BootstrapContext がそのようなコンポーネントに渡されることが保証されます。
この ResourceAdapter は、次のように、Java EE ".rar" デプロイユニット内の "META-INF/ra.xml" ファイルで定義されます。
<?xml version="1.0" encoding="UTF-8"?> <connector xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/connector_1_5.xsd" version="1.5"> <vendor-name>Spring Framework</vendor-name> <eis-type>Spring Connector</eis-type> <resourceadapter-version>1.0</resourceadapter-version> <resourceadapter> <resourceadapter-class>org.springframework.jca.context.SpringContextResourceAdapter</resourceadapter-class> <config-property> <config-property-name>ContextConfigLocation</config-property-name> <config-property-type>java.lang.String</config-property-type> <config-property-value>META-INF/applicationContext.xml</config-property-value> </config-property> </resourceadapter> </connector>"META-INF/applicationContext.xml" はデフォルトのコンテキスト設定場所であるため、別の / 追加の設定ファイルを指定するつもりがない限り、指定する必要はありません。デフォルトの場合は、上記の
config-property
セクション全体を削除できます。単純な デプロイのニーズの場合、必要な操作は次のとおりです。すべてのアプリケーションクラスを RAR ファイル (ファイル拡張子が異なる標準の JAR ファイル) にパッケージ化し、必要なすべてのライブラリ jar を RAR アーカイブのルートに追加し、上記のように "META-INF/ra.xml" デプロイ記述子と対応する Spring XML Bean 定義ファイル (通常は "META-INF/applicationContext.xml" ) を追加し、結果の RAR ファイルをアプリケーションサーバーの デプロイディレクトリにドロップします。
修飾子と型 | フィールドと説明 |
---|---|
static StringSE | CONFIG_LOCATION_DELIMITERS これらの文字は、1 つの文字列値に含まれる複数のコンテキスト設定パス間の区切り文字とみなされます。 |
static StringSE | DEFAULT_CONTEXT_CONFIG_LOCATION |
protected Log | logger |
コンストラクターと説明 |
---|
SpringContextResourceAdapter() |
修飾子と型 | メソッドと説明 |
---|---|
protected ConfigurableApplicationContext | createApplicationContext(BootstrapContextEE bootstrapContext) 指定された JCA BootstrapContext の Spring ApplicationContext をビルドします。 |
protected ConfigurableEnvironment | createEnvironment() 新しい StandardEnvironment を返します。 |
void | endpointActivation(MessageEndpointFactoryEE messageEndpointFactory, ActivationSpecEE activationSpec) この実装は常に NotSupportedException をスローします。 |
void | endpointDeactivation(MessageEndpointFactoryEE messageEndpointFactory, ActivationSpecEE activationSpec) この実装は何もしません。 |
boolean | equals(ObjectSE obj) |
protected StringSE | getContextConfigLocation() 指定されたコンテキスト構成ファイルを返します。 |
XAResourceSE[] | getXAResources(ActivationSpecEE[] activationSpecs) この実装は、常に null を返します。 |
int | hashCode() |
protected void | loadBeanDefinitions(BeanDefinitionRegistry registry, StringSE[] configLocations) 指定された構成ファイルに基づいて、Bean 定義を所定のレジストリにロードします。 |
void | setContextConfigLocation(StringSE contextConfigLocation) リソースアダプターのデプロイユニット内のコンテキスト構成ファイルの場所を設定します。 |
void | start(BootstrapContextEE bootstrapContext) この実装は、 createApplicationContext(javax.resource.spi.BootstrapContext) テンプレートメソッドを介して Spring ApplicationContext をロードします。 |
void | stop() この実装は Spring ApplicationContext を閉じます。 |
cloneSE, finalizeSE, getClassSE, notifySE, notifyAllSE, toStringSE, waitSE, waitSE, waitSE
public static final StringSE CONFIG_LOCATION_DELIMITERS
public static final StringSE DEFAULT_CONTEXT_CONFIG_LOCATION
protected final Log logger
public void setContextConfigLocation(StringSE contextConfigLocation)
これは、ra.xml
デプロイ記述子の "ContextConfigLocation" 構成プロパティとして指定できます。
デフォルトは "classpath:META-INF/applicationContext.xml" です。
protected StringSE getContextConfigLocation()
protected ConfigurableEnvironment createEnvironment()
StandardEnvironment
を返します。 サブクラスは、カスタム ConfigurableEnvironment
実装を提供するためにこのメソッドをオーバーライドできます。
public void start(BootstrapContextEE bootstrapContext) throws ResourceAdapterInternalExceptionEE
createApplicationContext(javax.resource.spi.BootstrapContext)
テンプレートメソッドを介して Spring ApplicationContext をロードします。ResourceAdapterEE
の startEE
ResourceAdapterInternalExceptionEE
protected ConfigurableApplicationContext createApplicationContext(BootstrapContextEE bootstrapContext)
デフォルトの実装では、ResourceAdapterApplicationContext
を構築し、指定された構成ファイルを実際に解析するために loadBeanDefinitions(org.springframework.beans.factory.support.BeanDefinitionRegistry, java.lang.String[])
に委譲します。
bootstrapContext
- この ResourceAdapter の BootstrapContextprotected void loadBeanDefinitions(BeanDefinitionRegistry registry, StringSE[] configLocations)
registry
- ロードするレジストリ configLocations
- 解析された構成の場所 setContextConfigLocation(java.lang.String)
public void stop()
ResourceAdapterEE
の stopEE
public void endpointActivation(MessageEndpointFactoryEE messageEndpointFactory, ActivationSpecEE activationSpec) throws ResourceExceptionEE
ResourceAdapterEE
の endpointActivationEE
ResourceExceptionEE
public void endpointDeactivation(MessageEndpointFactoryEE messageEndpointFactory, ActivationSpecEE activationSpec)
ResourceAdapterEE
の endpointDeactivationEE
@Nullable public XAResourceSE[] getXAResources(ActivationSpecEE[] activationSpecs) throws ResourceExceptionEE
null
を返します。ResourceAdapterEE
の getXAResourcesEE
ResourceExceptionEE
public int hashCode()
ObjectSE
の hashCodeSE