ヘッダーをスキップ
Oracle® Fusion Middleware Oracle WebLogic ServerでのSpringのサポート
11g リリース1(10.3.3)
B61651-01
  目次へ移動
目次

前
 
次
 

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

標準のWeblogic Serverインストールでは、WebLogic Server Java EEコンテナで、標準のJava EE 5の依存性インジェクション(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 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://oss.oracle.com/projects/pitchfork/からのpitchfork.jarもダウンロードします。

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

  2. 上記のJARファイルを、WebLogic Serverのクラス・パスに追加します。『Oracle Fusion Middleware 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を注入できます。