Spring2.0入門 ――Java・オープンソース・Web開発自由自在

サポートページ

この記事を読むのに必要な時間:およそ 4 分

お詫びと訂正

本書の記載内容に以下の誤りがございましたので,訂正させて頂きます。お買い上げ頂いた読者の皆様ならびに関係各位にご迷惑をお掛けいたしましたことを深くお詫び申し上げます。

P.53表4.2 util:setとutil:mapの欄

util:setの「utilスキーマを利用しない記述」

<bean id="emails"
<bean id="users"

util:setの「utilスキーマを利用した記述」

<util:list
<util:set

util:mapの「utilスキーマを利用しない記述」

<bean id="emails"
<bean id="users"

P.257 リスト12.26の(6)の部分

from="java.lang.String" to="java.lang.Integer"/>
from="string" to="integer"/>

mappingタグのfrom属性/to属性にはクラスを指定するのではなく,クラスの「エイリアス」を指定します。クラスのエイリアスとは,Stringまたはプリミティブ型のラッパクラスの,クラス名の先頭を小文字にしたもの*になります。⁠String → string,Integer → integer,Long → long,etc⁠⁠。

ただし,フロー定義ファイルのスキーマ定義では「クラスのエイリアスまたはクラスを指定する」となっているため,今後クラスでも指定できるように変更される可能性はあります。

*……Integerについては,⁠int」でも指定することができます。

P.384リスト18.4の(7)の部分(下から3行目)

pointcut="execution(* *Service.*(..))"/>
pointcut="execution(* *..*Service.*(..))"/>

修正前のポイントカットの指定では,ルートパッケージにあるServiceクラスにしかAspectが適用されません。今回のようにパッケージに含まれるクラスに適用する場合は,クラス指定(今回は「*Service⁠⁠)の前に「*..」を指定する必要があります。

P.328 リスト15.6は次のコードが正しいものです。大変失礼しました。深くお詫びもうしあげます。

▼リスト15.6 RmiProxyFactoryBeanのBean定義ファイルの例

(rmi_client_applicatoinContext.xml)


<?xml version="1.0" encoding="UTF-8"?>
<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">


<bean id=
"customerServiceClient"
class=
"org.springframework.remoting.rmi.RmiProxyFactoryBean">
<property name=
"serviceUrl" value=
"rmi://localhost:1099/CustomerService"/>
<property name="serviceInterface" value=
"com.mamezou.remote.CustomerService"/>
</bean>


</beans>

本書の補足情報

P.66 4.4.2.2 「Aroundアドバイスの設定」補足説明

Aroundアドバイスの説明でProceedingJoinPoint#proceed()メソッドの戻り値について,記述がありませんでしたので補足します。

ProceedingJoinPoint#proceed()メソッドを利用すると,アスペクトの対象となるメソッドが実行されます。

アスペクトの対象となるメソッドが,実行結果として戻り値を返す場合は,ProceedingJoinPoint#proceed()メソッドはObject型でその戻り値を受け取ることができます。

以下のリストは,アスペクトの対象となるメソッドが,Employeeオブジェクト,String,intの戻り値を返した場合に,それを受け取り,加工して,アスペクトの対象となるメソッドを呼び出した側のメソッドに返却する例です。

// アスペクトの対象となるメソッドが,Employeeオブジェクトを返す場合


public Employee aroundEmployee
(ProceedingJoinPoint pjp) throws Throwable {
Employee emp = (Employee)pjp.proceed();
emp.setName("Hoge");
return emp;
}

// アスペクトの対象となるメソッドが,Stringを返す場合


public String aroundString
(ProceedingJoinPoint pjp) throws Throwable {
String str = (String)pjp.proceed();
return str + "Hoge";
}

// アスペクトの対象となるメソッドが,intを返す場合


public int aroundInt
(ProceedingJoinPoint pjp) throws Throwable {

Integer value = (Integer)pjp.proceed();
int ret = value.intValue();
return ret*1.05;
}

Spring2.0入門「サンプルコードについて」

1 動作環境について

1.1 バージョンの確認

  • Windows:XP Professional SP2
  • JDK :5.0 Update 10
  • Eclipse:3.2.1
  • WTP :1.5.2
  • Tomcat :5.5.20

上記環境を確認のうえ,本サンプルコードをご利用ください。

1.2 基本的な動作環境を構築するために必要なソフトウェアのダウンロード方法

  • Eclipse:
    • あらかじめWTPがプラグインされているEclipse(All-in-oneと呼ぶ)を使用するため,下記のWTPのダウンロードを参照してください。
    • WTP:
    • http://download.eclipse.org/webtools/downloads/drops/R1.5/R-1.5.2-200610261841/
    • 上記サイトからAll-in-oneをダウンロードしてください。
    • 「ファイル名: wtp-all-in-one-sdk-R-1.5.2-200610261841-win32.zip」

1.3 環境構築するための,各ソフトウェアのインストール方法

次の順番でインストールしてください。
  1. JDKをインストールします。
  2.  ダウンロードしたファイルを実行してください。

  3. Tomcatをインストールします。
  4.  ダウンロードしたファイルを実行してください。

  5. Eclipse(WTP含む)をインストールします。
  6.  ダウンロードしたファイルを展開(解凍)してください。

1.4 初期設定

WTPでTomcatを利用するための設定をおこないます。次の手順で設定をおこなってください。
  1. Eclipseを起動します。
  2.  メニューから[File]-[New]-[Other...]を選択します。

  3. Newダイアログ(Select a wizard)が開きます。
  4.  [Serverフォルダ]-[Server]を指定します。

     [Next]ボタンを選択します。

  5. New Serverダイアログ(Define a New Server)が開きます。
  6.  Select the server typeを指定します。

     →[Apacheフォルダ]-[Tomcat v5.5 Server]を指定します。

     [Next]ボタンを選択します。

  7. New Serverダイアログ(Tomcat Server)が開きます。
  8.  Tomcat installation directoryを指定します。

     →[Browse]ボタンを選択し,Tomcatのインストール先フォルダを指定します。

     例)C:\Program Files\Apache Software Foundation\Tomcat 5.5

     [Next]ボタンを選択します。

  9. New Serverダイアログ(Add and Remove Projects)が開きます。
  10.  [Finish]ボタンを選択します。

2 Sprin2.0入門のサンプルコードの使い方

2.1 インストール方法

サンプルコードはEclipseプロジェクトになっています。次の手順でEclipseにインストールしてください。
  1. Eclipseを起動します。
  2.  メニューから[File]-[Import]を選択します。

  3. Importダイアログ(Select)が開きます。
  4.  [Generalフォルダ]-[Existing Projects into Workspace]を指定します。

     [Next]ボタンを選択します。

  5. Importダイアログ(Import Projects)が開きます。
  6.  [Select archive file]ラジオボタンを選択します。

     [Browse]ボタンを選択し,インポートするアーカイブファイル(*.zip)を指定します。

     Projectsに指定したアーカイブファイルに含まれるプロジェクトが表示されます。

     [Finish]ボタンを選択します。

2.2 動作方法

ここではEclipseプロジェクトのタイプごとに動作方法を説明します。

サンプルコードは以下のEclipseプロジェクトのどちらかを使用しています。

Java Project: Javaアプリケーション開発に使用します。

Dynamic Web Project: Webアプリケーション開発に使用します。

●2.2.1 Java Projectの動作方法

Java Projectのサンプルは以下のクラスで用意しています。

  • メソッドmainを含むMainクラス
  • JUnitを利用したJUnitテストケース
  • Mainクラスの場合:
  •   Mainクラスのコンテキストメニューから,[Run As]-[Java Application]を選択します。

  • JUnitテストケースの場合:
  •   JUnitテストケースのコンテキストメニューから,[Run As]-[JUnit Test]を選択します。

●2.2.2 Dynamic Web Projectの動作方法

Dynamic Web Projectのサンプルは以下の手順で実行します。

  1. J2EEパースペクティブを開きます。
  2. Serversビューの[Tomcat v5.5 @ localhost]サーバのコンテキストメニューから
  3. [Add and Remove Projects]を選択します。

  4. Add and Remove Projectsダイアログが開きます。
  5. 実行するプロジェクトを追加します。

  6. [Finish]ボタンを選択します。
  7. Serversビューの[Start the server]ボタン(緑色の丸いアイコン)を選択します。
  8. サーバ起動後にWebブラウザを開きreadme.txtで指定されたURLにアクセスします。サーバを停止する時はServersビューの[Stop the server]ボタン(赤色の四角いアイコン)を選択します。

2.3 サンプルコード一覧

以下に各章とサンプルコードの対応を示します。ファイル名をクリックすると,ダウンロードが始まります。zip形式の圧縮ファイルとなっています。それぞれ解凍すると,readme.txtファイルがありますので,ご利用される前に必ずこのファイルを熟読してください。そのうえでご利用ください。

まずはサンプルコードについてこちらをご一読ください。よろしく御願いします。

第4章 Spring Bean定義ファイル

SpringEasyConfig.zip(5.2MB)

  • 4.2 utilスキーマ
  • 4.4 aopスキーマ
  • 4.5 txスキーマ
  • SpringEasyConfigAnnotation.zip(4.7MB)

  • 4.4.4 アノテーションを利用したAOPの設定
  • 4.4.5 Spring管理外のBeanへのインジェクション(aop:spring-configuredタグ)
  • SpringCustomSchema.zip(3.2MB)

  • 4.7 Bean定義のXMLスキーマを拡張する
  • 4.8 XMLスキーマを拡張する
  • 第5章 Beanスコープ

    SpringSessionScopeWithAOP.zip(4.7KB)

    第6章 Java Persistence API (JPA)

    SpringEMBook.zip(7.2MB)

    第7章 SpringJDBC

    SpringJdbc.zip(3.6MB)

    第8章 Spring Portlet MVC

    SpringPortletMVC.zip(6.1MB)

    第9章 動的言語サポート

    SpringEasyConfigLang.zip(7.2KB)

    第12章 Spring Web Flow

    SpringWebFlow.zip(3.4MB)

    第13章 DWRを使ったAjax+Spring連携

    SpringAjaxSample.zip(381KB)

  • 13.1 Ajaxアプリケーション
  • SpringDWRSample.zip(176KB)

  • 13.2 DWR (Direct Web Remoting)
  • SpringDWRSpringSample.zip(2.3MB)

    SpringDWRSpringSample2.zip(2.3MB)

    SpringDWRSpringSample3.zip(2.4MB)

  • 13.3 DWR+Spring連携
  • SpringAjax.zip(6.5MB)

  • 13.4 サンプルアプリケーション構築
  • 第14章 Spring JMS連携

    SpringJMS.zip(6.6MB)

    第15章 Spring Remote連携

    SpringRemote.zip(10MB)

    第16章 Spring Mail抽象レイヤ

    SpringMail.zip(2.8MB)

    第17章 Springでのバッチ処理

    SpringSchedulingHelloWorld.zip(2.9MB)

  • 17.1.3 Java's Timer
  • 17.1.4 Quartz
  • SpringAjax.zip(6.5MB)

  • 17.1.5 従業員管理システムとバッチ処理
  • 第18章 Acegi Security編

    AcegiConsole.zip(4.7MB)

  • 18.2 Acegiの基本
  • AcegiWeb.zip(3.1MB)

  • 18.3 Webアプリケーションへの適用