トップ » 技術記事 » チャット作成で学ぶWebリモーティング(6) - Spring2の名前空間拡張機能を用いたDWRの設定

チャット作成で学ぶWebリモーティング(6) - Spring2の名前空間拡張機能を用いたDWRの設定

タグ: Ajax DWR Java javascript Spring

どうも皆さん、こんにちは。白石です。

今回はWebリモーティングに関する連載の第六回目です。前回の記事で、DWRとSpringを連携させて動作させる方法を学びました。前回行った連携方法は、DWRがインスタンスを生成する方法である「Creator」をSpring対応の物に変えるようdwr.xmlで指定し、インスタンスをSpringのコンテナから取得するよう修正するというものでした。
今回は、同じくSpringのコンテナからインスタンスを取得しますが、その設定を全てSpringのコンテキスト設定ファイルで完結させる方法を学びます。

Spring2の名前空間による拡張

Springはバージョン2から、コンテキスト設定ファイルのスキーマをXML Schemaで表すようになりました (DTDも依然として使用できます)。これによってファイル内でXML名前空間を利用できるようになったため、名前空間を利用した設定項目の拡張が行えるようになっています。

そして、DWR2もこの仕組みを利用できるように拡張されています。これによってDWRの設定をSpringのコンテキスト設定ファイルに記述することができるため、設定ファイルの一元化が図れます。要は、dwr.xmlが必要なくなると言うことです。これは非常に大きなメリットです。

では、その利用方法を見ていきましょう。

Springの名前空間拡張機能の利用方法

まずは、名前空間を利用したコンテキスト設定ファイルの拡張方法をざっと説明します。たった3ステップで完結します。

  1. まず、Springの設定ファイルをXML Schemaをベースとするよう変更します。そのために必要なのは、設定ファイルのルート要素を以下のように指定します。

    <beans xmlns="http://www.springframework.org/schema/beans"
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd">
    

    名前空間URIの指定 (xmlns要素) と、その名前空間に含まれる要素の検証を行うためのXML Schemaの指定 (xsi:schemaLocation) を行っています。分かりにくいですが、xmi:schemaLocationの属性値には、対象となる名前空間とそのスキーマのURLを空白で区切って指定します。

  2. 次は、ファイル内で使用する拡張名前空間を導入します。例えばDWRの名前空間を、コンテキスト設定ファイル内で”dwr”というプレフィックスで使用するとすると、以下のような宣言をルート要素に追加します。

    xmlns:dwr="http://www.directwebremoting.org/schema/spring-dwr"
    
  3. 最後に、その名前空間に含まれる要素を検証するためのXML Schemaも追加します。そのためには、xsi:schemaLocation属性に、XML SchemaファイルのURLをさらに追加します。

    xsi:schemaLocation="http://www.springframework.org/schema/beans
                        http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
                        http://www.directwebremoting.org/schema/spring-dwr
                        http://www.directwebremoting.org/schema/spring-dwr-2.0.xsd">
    

    「http://…/spring-dwr」と言う名前空間に、「http://…/spring-dwr-2.0.xsd」と言うXML Schemaファイルを関連付けています。

以上で完了です。以降、コンテキスト設定ファイル内では”dwr”というプレフィックスを指定すれば、DWRが提供するXML要素を使用することができるのです。

これにより言えることは、名前空間によるコンテキスト設定の拡張を利用するには、「対象となる名前空間URI」と「検証用のXML Schemaを指すURL」さえ判明すれば良いということです。こうした名前空間はSpringもデフォルトでいくつか提供しており、たとえば以下のようなものが利用できます。

aop

AOPの設定に用いられる。

  • 名前空間URIの指定方法: 「xmlns:aop=”http://www.springframework.org/schema/aop”」
  • XML SchemaのURL: 「http://www.springframework.org/schema/aop/spring-aop-2.0.xsd」
tx

トランザクションの設定に用いられる。

  • 名前空間URIの指定方法: 「xmlns:tx=”http://www.springframework.org/schema/tx”」
  • XML SchemaのURL: 「http://www.springframework.org/schema/tx/spring-tx-2.0.xsd」

これらの情報は、多くの場合利用するプロダクトのドキュメントに書いてありますが、Jarファイルの内容を調べれば簡単に判明します。その方法は、今回の記事の最後に軽く触れましょう。

Series Navigation«DWRとSpringの連携Spring2のカスタムスコープ»

1 2

執筆者紹介

shiraishi

shiraishi

最近書いてばっかりいます。 眠いとおんなじことばかり書きます。 そして、大概眠いです。

TrackBack URL :