標準の Weblogic Server インストールでは、WebLogic Server Java EE コンテナで、標準の Java EE 5 の依存性注入 (DI) とインターセプタ (アスペクト指向プログラミングの形式) が提供されます。また、拡張された依存性注入機能とアスペクト指向プログラミングを提供する Spring Framework 拡張機能もサポートされます。この拡張では、JSR-250 (共通アノテーション)、依存性注入、および EJB 3.0 スタイルのインターセプションを提供する Spring Framework アドオンの Pitchfork を使用します。(http://www.springsource.com/pitchfork
を参照。) この拡張によって、サーブレット リスナやフィルタを含む EJB インスタンスおよび Web コンポーネントに、依存性注入とアスペクト指向プログラミングが提供されます。
注意 : このリリースの WebLogic Server の JSP タグ ハンドラでは Spring 拡張機能はサポートされません。 |
WebLogic Server で Spring 拡張機能を有効にするには、次の手順に従います。
http://www.springsource.com/download
から特定のバージョンの Spring およびその依存性をダウンロードします。Oracle によって認定されているバージョンの Spring をダウンロードしてください。詳細については、[Oracle Fusion Middleware サポート対象のコンフィグレーション] ページ (http://www.oracle.com/technology/software/products/ias/files/fusion_certification.html
) の適切な「Oracle WebLogic Server」のリンクを参照してください。
最低でも、以下の JAR ファイルが必要になります。
spring.jar
aspectjweaver.jar
commons-logging.jar
log4j-1.2.14.jar
pitchfork.jar
http://www.springsource.com/pitchfork
からの pitchfork.jar
もダウンロードします。
必要に応じて他の JAR ファイルを追加しても構いません。
上記の JAR ファイルを、WebLogic Server のクラスパスに追加します。『Oracle Fusion Middleware Oracle WebLogic Server アプリケーションの開発』の「システム クラスパスへの JAR の追加」を参照してください。
Weblogic Server Web コンテナおよび EJB コンテナでは、これらの JAR を使用してコンテナ サービス (依存性注入とインターセプタ) を提供します。
これらの JAR はサーバのクラスパスに追加されているため、アプリケーション (EAR、WAR、または JAR ファイルとしてパッケージ化したもの) でも使用されます。アプリケーションと一緒にパッケージ化されている JAR を使用するようにアプリケーションをコンフィグレーションするには、特定のデプロイメント記述子を有効にする必要があります。
<component-factory-class-name>
要素を org.springframework.jee.interfaces.SpringComponentFactory
に設定して Spring 拡張機能を有効にします。この要素は、EJB、Web、およびアプリケーション記述子に含まれています。アプリケーション レベルの記述子は、モジュール レベルの記述子によって上書きされます。このタグを null (デフォルト) に設定すると、Spring 拡張機能は無効になります。
spring-ejb-jar.xml
または spring-web.xml
という名前の標準 Spring bean 定義ファイルを、アプリケーションの /WEB-INF/classes/META-INF ディレクトリ (または JAR ファイル内の META-INF ディレクトリ) に配置します。WebLogic コンテナは、これらの名前で標準の Spring Bean 定義ファイルを検索します。Spring コンテナから EJB やサーブレットのインスタンスを認識するには、Spring bean の <id>
タグを、EJB の場合は ejb-name
に、Web コンポーネントの場合は class-name
に設定する必要があります。
たとえば、次のようなステートレス EJB に対して、
@Stateless public class TraderImpl implements Trader { private List symbolList; public void setSymbolList(List l) { symbolList = l; } ... }
アプリケーションに以下の spring-ejb-jar.xml
を追加することができます。
<beans> <!-- id は ejb-name に対応する。--> <bean id="Trader"> <property name="symbolList"> <list> <value>ORCL</value> <value>MSFT</value> </list> </property> </beans>
標準の Java EE 仕様で利用できない EJB に symbolList
を注入できます。