ヘッダーをスキップ
Oracle® Fusion Middleware Oracle WebLogic Server Springアプリケーションの開発と管理
12c (12.1.2)
E48057-02
  目次へ移動
目次

前
 
次
 

6 WebLogic ServerへのSpring依存関係インジェクションの拡張

この章では、WebLogic Serverで拡張された依存関係インジェクション機能を提供するSpring Framework拡張機能を有効にする方法について説明します。

標準のWeblogic Serverインストールでは、WebLogic Server Java EEコンテナで、標準のJava EE 6の依存関係インジェクション(DI)とインターセプタ(アスペクト指向プログラミングの形式)が提供されます。また、拡張された依存関係インジェクション機能とアスペクト指向プログラミングを提供するSpring Framework拡張機能もサポートされます。この拡張では、JSR-250 (共通アノテーション)、依存関係インジェクション、およびEJB 3.0スタイルのインターセプションを提供するSpring FrameworkアドオンのPitchforkを使用します。(http://oss.oracle.com/projects/pitchfork/を参照してください。)この拡張によって、サーブレット・リスナーやフィルタを含むEJBインスタンスおよびWebコンポーネントに、依存関係インジェクションとアスペクト指向プログラミングが提供されます。


注意:

このリリースのWebLogic ServerのJSPタグ・ハンドラではSpring拡張機能はサポートされません。


WebLogic ServerでSpring拡張機能を有効にするには、次を実行します:

  1. http://www.springsource.com/downloadから特定のバージョンのSpringおよびその依存性をダウンロードします。Oracleによって認定されているバージョンのSpringをダウンロードしてください。この情報については、Oracle Technology NetworkのOracle Fusion Middlewareのサポートされるシステム構成を参照してください。

    最低でも、以下のJARファイルが必要になります。

    • spring.jar

    • aspectjweaver.jar

    • commons-logging.jar

    • log4j-1.2.14.jar

    • pitchfork.jar

    http://oss.oracle.com/projects/pitchfork/からのpitchfork.jarもダウンロードします。

    必要に応じて他のJARファイルを追加しても構いません。

  2. 上記のJARファイルを、WebLogic Serverのクラスパスに追加します。『Oracle WebLogic Serverアプリケーションの開発』のシステム・クラスパスへのJARの追加に関する項を参照してください。

    Weblogic Server WebコンテナおよびEJBコンテナでは、これらのJARを使用してコンテナ・サービス(依存関係インジェクションとインターセプタ)を提供します。

    これらのJARはサーバーのクラスパスに追加されているため、アプリケーション(EAR、WAR、またはJARファイルとしてパッケージ化したもの)でも使用されます。アプリケーションと一緒にパッケージ化されているJARを使用するようにアプリケーションを構成するには、特定のデプロイメント記述子を有効にする必要があります。

  3. <component-factory-class-name>要素をorg.springframework.jee.interfaces.SpringComponentFactoryに設定してSpring拡張機能を有効にします。この要素は、EJB、Web、およびアプリケーション記述子に含まれています。アプリケーション・レベルの記述子は、モジュール・レベルの記述子によって上書きされます。このタグをnull (デフォルト)に設定すると、Spring拡張機能は無効になります。

  4. 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 corresponds to ejb-name. -->
      <bean id="Trader">
         <property name="symbolList">
           <list>
             <value>ORCL</value>
             <value>MSFT</value>
           </list>
         </property>
    </beans>
    

    標準のJava EE仕様で利用できないEJBにsymbolListを注入できます。