サポートページ
お詫びと訂正
本書の記載内容に以下の誤りがございましたので、訂正させて頂きます。お買い上げ頂いた読者の皆様ならびに関係各位にご迷惑をお掛けいたしましたことを深くお詫び申し上げます。
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 基本的な動作環境を構築するために必要なソフトウェアのダウンロード方法
- JDK:
- http://
java.sun.com/ j2se/ 1.5.0/ ja/ download.html - 上記サイトからJDK 5.0 Update 10をダウンロードしてください。
- 「ファイル名: jdk-1_5_0_10-windows-i586-p.exe」
- http://
- 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」
- Tomcat:
- http://
tomcat.apache.org/ download-55.cgi - 上記サイトからWindows Service Installerをダウンロードしてください。
- 「ファイル名: apache-tomcat-5.5.20.exe」
- http://
1.3 環境構築するための、各ソフトウェアのインストール方法
- 次の順番でインストールしてください。
-
- JDKをインストールします。
- Tomcatをインストールします。
- Eclipse(WTP含む)をインストールします。
ダウンロードしたファイルを実行してください。
ダウンロードしたファイルを実行してください。
ダウンロードしたファイルを展開(解凍)してください。
1.4 初期設定
- WTPでTomcatを利用するための設定をおこないます。次の手順で設定をおこなってください。
-
- Eclipseを起動します。
- Newダイアログ(Select a wizard)が開きます。
- New Serverダイアログ(Define a New Server)が開きます。
- New Serverダイアログ(Tomcat Server)が開きます。
- New Serverダイアログ(Add and Remove Projects)が開きます。
メニューから[File]-[New]-[Other...]を選択します。
[Serverフォルダ]-[Server]を指定します。
[Next]ボタンを選択します。
Select the server typeを指定します。
→[Apacheフォルダ]-[Tomcat v5.5 Server]を指定します。
[Next]ボタンを選択します。
Tomcat installation directoryを指定します。
→[Browse]ボタンを選択し、Tomcatのインストール先フォルダを指定します。
例)C:\Program Files\Apache Software Foundation\Tomcat 5.5
[Next]ボタンを選択します。
[Finish]ボタンを選択します。
2 Sprin2.0入門のサンプルコードの使い方
2.1 インストール方法
- サンプルコードはEclipseプロジェクトになっています。次の手順でEclipseにインストールしてください。
-
- Eclipseを起動します。
- Importダイアログ(Select)が開きます。
- Importダイアログ(Import Projects)が開きます。
メニューから[File]-[Import]を選択します。
[Generalフォルダ]-[Existing Projects into Workspace]を指定します。
[Next]ボタンを選択します。
[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クラスの場合:
- JUnitテストケースの場合:
Mainクラスのコンテキストメニューから、[Run As]-[Java Application]を選択します。
JUnitテストケースのコンテキストメニューから、[Run As]-[JUnit Test]を選択します。
●2.2.2 Dynamic Web Projectの動作方法
Dynamic Web Projectのサンプルは以下の手順で実行します。
-
- J2EEパースペクティブを開きます。
- Serversビューの[Tomcat v5.5 @ localhost]サーバのコンテキストメニューから
- Add and Remove Projectsダイアログが開きます。
- [Finish]ボタンを選択します。
- Serversビューの[Start the server]ボタン(緑色の丸いアイコン)を選択します。
- サーバ起動後にWebブラウザを開きreadme.txtで指定されたURLにアクセスします。サーバを停止する時はServersビューの[Stop the server]ボタン(赤色の四角いアイコン)を選択します。
[Add and Remove Projects]を選択します。
実行するプロジェクトを追加します。
2.3 サンプルコード一覧
以下に各章とサンプルコードの対応を示します。ファイル名をクリックすると、ダウンロードが始まります。zip形式の圧縮ファイルとなっています。それぞれ解凍すると、readme.txtファイルがありますので、ご利用される前に必ずこのファイルを熟読してください。そのうえでご利用ください。
まずは「サンプルコードについて」こちらをご一読ください。よろしく御願いします。
- ・第4章 Spring Bean定義ファイル
-
- 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タグ)
- 4.7 Bean定義のXMLスキーマを拡張する
- 4.8 XMLスキーマを拡張する
- ・第5章 Beanスコープ
- ・第6章 Java Persistence API (JPA)
- ・第7章 SpringJDBC
- ・第8章 Spring Portlet MVC
- ・第9章 動的言語サポート
- ・第12章 Spring Web Flow
- ・第13章 DWRを使ったAjax+Spring連携
-
- 13.1 Ajaxアプリケーション
- 13.2 DWR (Direct Web Remoting)
SpringDWRSpringSample.zip(2.3MB)
SpringDWRSpringSample2.zip(2.3MB)
SpringDWRSpringSample3.zip(2.4MB)
- 13.3 DWR+Spring連携
- 13.4 サンプルアプリケーション構築
- ・第14章 Spring JMS連携
- ・第15章 Spring Remote連携
- ・第16章 Spring Mail抽象レイヤ
- ・第17章 Springでのバッチ処理
-
SpringSchedulingHelloWorld.zip(2.9MB)
- 17.1.3 Java's Timer
- 17.1.4 Quartz
- 17.1.5 従業員管理システムとバッチ処理
- ・第18章 Acegi Security編
-
- 18.2 Acegiの基本
- 18.3 Webアプリケーションへの適用