Spring徹底入門 Spring FrameworkによるJavaアプリケーション開発(株式会社NTTデータ)|翔泳社の本
  1. ホーム >
  2. 書籍 >
  3. Spring徹底入門 Spring FrameworkによるJavaアプリケーション開発

Spring徹底入門 Spring FrameworkによるJavaアプリケーション開発


形式:
書籍
発売日:
ISBN:
9784798142470
定価:
4,400(本体4,000円+税10%)
仕様:
B5変・744ページ
カテゴリ:
プログラミング・開発
キーワード:
#プログラミング,#開発環境,#開発手法,#Web・アプリ開発
シリーズ:
徹底入門
紙の書籍
本書籍には新版があります
Spring徹底入門 第2版 Spring FrameworkによるJavaアプリケーション開発

Spring Frameworkの基礎から開発時の指針まで!
定番OSSフレームワークによるJavaシステム開発の入門書!

Javaによるアプリケーション開発の定番フレームワークである、Spring Framework。本書は、DI/AOP、データアクセス(JDBC)、JPA(クエリ)といった基本から、MVC、セキュリティ、バッチ、周辺サブプロジェクトまで、Spring Frameworkの機能や使い方、開発時の指針など、Java開発で、このフレームワークを徹底活用するための知識とノウハウを解説します。

これからSpring FrameworkによるJava開発を始める方、機能をもっと使いこなしたい方など、業務システム開発に携わるJavaエンジニアにおすすめの一冊です。

第1章 Spring Frameworkとは
第2章 Spring Core(DI×AOP)
第3章 データアクセス(Tx、JDBC)
第4章 Spring MVC
第5章 Webアプリケーションの開発
第6章 RESTful Webサービスの開発
第7章 Spring MVC の応用
第8章 Spring Test
第9章 Spring Security
第10章 Spring Data JPA
第11章 Spring + MyBatis
第12章 Spring+Thymeleaf
第13章 Spring Boot
第14章 チュートリアル

付属データはこちら

お問い合わせ

内容についてのお問い合わせは、正誤表、追加情報をご確認後に、お送りいただくようお願いいたします。

正誤表、追加情報に掲載されていない書籍内容へのお問い合わせや
その他書籍に関するお問い合わせは、書籍のお問い合わせフォームからお送りください。

利用許諾に関するお問い合わせ

本書の書影(表紙画像)をご利用になりたい場合は書影許諾申請フォームから申請をお願いいたします。
書影(表紙画像)以外のご利用については、こちらからお問い合わせください。

追加情報はありません。

ご購入いただいた書籍の種類を選択してください。

書籍の刷数を選択してください。

刷数は奥付(書籍の最終ページ)に記載されています。

現在表示されている正誤表の対象書籍

書籍の種類:

書籍の刷数:

本書に誤りまたは不十分な記述がありました。下記のとおり訂正し、お詫び申し上げます。

対象の書籍は正誤表がありません。

最終更新日:2021年04月23日
発生刷 ページ数 書籍改訂刷 電子書籍訂正 内容 登録日
1刷 009
1.4「Java EE との関係」9行目
2刷
2003年にはJ2SE 1.4がリリースされ、
2003年にはJ2EE 1.4がリリースされ、
2016.09.07
1刷 013
「パスワードをハッシュ化するインターフェイスの実装例」1行目
2刷
public interface s {
public interface PasswordEncoder {
2016.09.07
1刷 014
「UserServiceクラスを使うアプリケーションの実装例」1つ目のコード 1行目
2刷
UserRepository userRepository = new JdbcUserRepository();
UserRepository userRepository = new JdbcUserRepository(dataSource);
2016.09.07
1刷 016
「DIコンテナからインスタンスを取り出す実装例」1行目
2刷
ApplicationContext context = ApplicationContext context =
ApplicationContext context =
2016.09.07
1刷 021
「■ アノテーションベースConfiguration」1つ目のコードのキャプション
11刷
Bean定義を行なうアノテーションによるBean定義の実装例(UserRepositoryImple.java)
Bean定義を行なうアノテーションによるBean定義の実装例(UserRepositoryImpl.java)

2刷では正しく修正されていましたが、3刷以降、修正前の状態に戻っていました。
2016.09.07
1刷 022
1つ目のコードのキャプション
2刷
Bean定義を行なうアノテーションベースConfigurationの実装例(UserServiceImple.java)
Bean定義を行なうアノテーションベースConfigurationの実装例(UserServiceImpl.java)
2016.09.07
1刷 023
1行目
2刷
<context:component-scan>要素のbase-packages属性に
<context:component-scan>要素のbase-package属性に
2016.09.07
1刷 024
最下部のコード 3行目
2刷
<property name="password" ref="passwordEncoder" />
<property name="passwordEncoder" ref="passwordEncoder" />
2016.09.07
1刷 033
下から3行目
5刷
この場合、ifListにはIntIF1、IntIF2、IntStringのBeanのリストが注入されます。
この場合、ifListにはIntIF1、IntIF2、StringIFのBeanのリストが注入されます。
2017.09.01
1刷 036
最下部のコード 5行目(空行含む)
5刷
@ComponentScan(basePackages = "com.example.demo" includeFilters = {
@ComponentScan(basePackages = "com.example.demo", includeFilters = {

カンマを追加
2017.09.01
1刷 038
最上部のコード、下から2行目
2刷
@ComponentScan.Filter(type = FilterType.ANNOTATION pattern = ...
@ComponentScan.Filter(type = FilterType.ANNOTATION, pattern = ...

カンマを追加
2016.09.28
1刷 041
「prototypeスコープのPasswordEncoderのBean定義」説明文
3刷
このBeanをsingletonスコープのUserService Beanが使用します。
このBeanをsingletonスコープのUserServiceBeanが使用します。
2016.11.14
1刷 046
「独自のスコープの実装例」
11刷
@Bean
CustomScopeConfigurer customScopeConfigurer() {
  CustomScopeConfigurer configurer = new CustomScopeConfigurer();
  Map scopes = new HashMap<>();
  scopes.put("thread", new SimpleThreadScope());
  return configurer;
}
@Bean
static CustomScopeConfigurer customScopeConfigurer() {
  CustomScopeConfigurer configurer = new CustomScopeConfigurer();
  configurer.addScope("thread", new SimpleThreadScope());
  return configurer;
}
2016.12.15
1刷 048
下から1~2行目
11刷
インターフェイス実装したクラスです。
インターフェイス実装したクラスです。
2016.11.14
1刷 057
「BeanのデフォルトのスコープをprototypeにするJava Configの実装例」コードの2行目
3刷
public class AppgConfig {
public class AppConfig {
2016.11.14
1刷 060
「Target」の説明文
5刷
TargetオブジェクトはAdvicedオブジェクトと呼ばれることもあります。
TargetオブジェクトはAdvisedオブジェクトと呼ばれることもあります。
2017.09.01
1刷 070
「型で対象のJoin Pointを選択する」箇条書き1つ目の記述例
5刷
within(com.example.service.*)
within(com.example.service..)

アスタリスクをドットに訂正
2017.09.01
1刷 077
「XMLによるBean定義例」
5刷
<bean id="conversionService"
class="org.springframework.format.support.FormattingConversionServiceFactoryBean" />
</bean>
<bean id="conversionService"
class="org.springframework.format.support.FormattingConversionServiceFactoryBean" />
2017.09.01
1刷 083
「プロパティファイルの定義例」の説明文、「Java Configにおけるプロパティファイルの場所の設定例」のコード
3刷
以下の赤字部分の内容を追加します。
「プロパティファイルの定義例」の説明文: プロパティファイルの場所はJava Configに@org.springframework.context.annotation.PropertySource アノテーションを付与することで指定できます。なお、@Valueによる設定値のインジェクションを利用する場合はorg.springframework.context.support.PropertySourcesPlaceholderConfigurerのBean定義もあわせて必要になります(Spring 4.3からはPropertySourcesPlaceholderConfigurerのBean定義がなくてもインジェクションできるようになっています)。 「Java Configにおけるプロパティファイルの場所の設定例」のコード: @Configuration @PropertySource("classpath:application.properties") public class AppConfig {   @Bean   static PropertySourcesPlaceholderConfigurer placeholderConfigurer() {     return new PropertySourcesPlaceholderConfigurer();   } // ・・・ }
2016.11.14
1刷 089
「■ オブジェクトの生成」4行目、7行目
3刷
4行目・・・ 例: "{1,2,3}") 7行目・・・ 「new型のFQCN[インデックス]」
4行目・・・ 例: "{1,2,3}" 7行目・・・ 「new 型のFQCN[インデックス]」

7行目は「new」と「型」の間に半角スペースを入れます。
2016.11.14
1刷 091
下から2行目
3刷
③ isOpen メソッドは、リソースを読み込ための
③ isOpen メソッドは、リソースを読み込むための
2016.11.14
1刷 096
「2.7 メッセージ管理」下から3行目
9刷
また、言語サポートが
また、言語サポートが
2020.05.22
1刷 097
「2.7.1 MessageSourceインターフェイスと実装クラス」の最後の文
5刷
Spring 3.2より前のバージョンでは、ResourceBundleMessageSourceとReloadableResourceBundleMessageSourceの間には大きな機能差がありましたが、ResourceBundleMessageSourceでもJava SE 6から追加された仕組みを利用して「プロパティファイルのエンコーディング(defaultEncoding)」「キャッシュ期間(cacheMillis)」などが指定できるようになったため、この2つのクラスの機能差は縮まっています。
Spring 3.1.3より前のバージョンでは、ResourceBundleMessageSourceとReloadableResourceBundleMessageSourceの間には大きな機能差がありましたが、ResourceBundleMessageSourceでもJava SE 6から追加された仕組みを利用して「プロパティファイルのエンコーディング(defaultEncoding)」「キャッシュ期間(cacheSeconds)」などが指定できるようになったため、この2つのクラスの機能差は縮まっています。
2017.09.01
1刷 114
箇条書きの(5)
9刷
JdbcTemplate オブジェクトを利用し、
NamedParameterJdbcTemplateオブジェクトを利用し、
2020.05.22
1刷 123-124
「RowCallbackHandlerクラスの実装例」
5刷

9行目については、別項にもあるとおり、5刷での修正内容を以下のコードに戻します。

誤 rs.getInt("room_id")
正 rs.getString("room_id")
2017.09.01
1刷 124
「RowCallbackHandlerを用いたDaoクラスの実装例」
5刷
2017.09.01
1刷 134
1つ目のコードブロックの1行目
12刷
修正前
修正前

1行目のインデントを修正
2016.10.25
1刷 134
本文最終行
2刷
方に基づいており、アプリケーション開発者は本質的な処理ロジックのみを実装します。メソッド
方に基づいており、アプリケーション開発者は本質的な処理ロジックのみを実装します。
2016.09.28
1刷 135
一番上のサンプルコード
12刷
修正後
修正後

3行目以降のインデントを修正します。
2016.09.28
1刷 152
web.xmlの設定例
6刷

(1)の範囲を修正
2018.04.20
1刷 153
「コンフィギュレーションクラス(WebMvcConfig)の定義例」
5刷
@Configuration @EnableWebMvc public class WebMvcConfig extends WebMvcConfigurerAdapter {
@Configuration @EnableWebMvc @ComponentScan("example.app")
public class WebMvcConfig extends WebMvcConfigurerAdapter {
2017.09.01
1刷 160
「JSP(src/main/webapp/WEB-INF/echo/input.jsp)の作成例」の説明文(1)
6刷
<form:from>要素
<form:form>要素
2018.04.20
1刷 160
「メモ」1行目
2刷
<form:from> には
<form:form> には
2016.09.28
1刷 166
「Controllerの実装例」1行目
2刷
package springbook.app;
package example.app;
2016.09.28
1刷 207
「@org.springframework.format.annotation.DateTimeFormat」2行目
2刷
java.long.Longに加え、
java.lang.Longに加え、
2016.09.28
1刷 324
「■エラーメッセージの解決方法」のコードのキャプション
10刷
例外メッセージを交換する場合の例外ハンドらクラスの実装例
例外メッセージを交換する場合の例外ハンドラクラスの実装例
2020.11.26
1刷 428
表9.6「SimpleUrlAuthenticationFailureHandler」の説明 1行目
2刷
コンストラクタに指定したURL(defaultTargetUrl)
コンストラクタに指定したURL(defaultFailureUrl )
2016.08.10
1刷 532
ページ最下部の「SQLの記述例」
3刷
INSERT INTO meeting_room (room_id, room_name, capacity)   VALUES (#{roomId}, #{roomName}, #{capacity}
INSERT INTO meeting_room (room_id, room_name, capacity)   VALUES (#{roomId}, #{roomName}, #{capacity})

2行目の末尾に「)」を追加します。
2016.12.15
1刷 587
「13.1.1 Spring Bootで作るHello Worldアプリケーション」本文下から4行目
9刷
[Import]→[Existing Maven Projects]を選択し、
[Import]→[Maven]→[Existing Maven Projects]を選択し、
2020.07.28
1刷 597
「特定のロガーの出力レベルを変更する際の起動コマンド」下の本文2行目
9刷
によってされるため
によって作成されるため
2020.05.22
1刷 606
上から3つ目のコードのキャプション
2刷
messages.propertiesの定義例
messages_ja.propertiesの定義例
2016.08.10
1刷 606
ページ最下部のコード内
5刷
$[変数名}
${変数名}
2017.09.01
1刷 617
「application.propertiesの定義例」1行目
2刷
user.name=user
security.user.name=user
2016.09.28
1刷 622
「メモ」の3行目
5刷
target/META-INF/spring-configuration-metadata.json
target/classes/META-INF/spring-configuration-metadata.json
2017.09.01
1刷 625
本文最下行の後に図13.12を追加
5刷
図13.12 ヘルスチェック結果の表示

※追加した図は626ページに掲載。
2017.09.01
1刷 630
1つ目のコードのキャプション
5刷
GaugeServiceとCounterServiceの利用例
CounterServiceの利用例
2017.09.01
1刷 646
「User.java」6行目
4刷
public class User {
public class User implements Serializable {
2017.05.08
1刷 660
注釈①
5刷
JpaRepositoryインターフェイスを継承してReservationRepositoryエンティティ用のリポジトリインターフェイスを作成する。
JpaRepositoryインターフェイスを継承してReservationエンティティ用のリポジトリインターフェイスを作成する。
2017.09.01
1刷 663
「Reservation.java」3行目
5刷
public class Reservation {
public class Reservation implements Serializable {
2017.09.01
1刷 667
(3)の2行目
8刷
ISO 1861
ISO 8601
2020.07.08
1刷 693
「メモ」の「Windowsの場合」
5刷
$ mvnw.cmd package
> mvnw.cmd package
2017.09.01
5刷 123
RowCallbackHandlerクラスの実装例 上から9行目
10刷
rs.getInt("room_id")
rs.getString("room_id")
2021.04.23

感想・レビュー

toiwata さん

2016-09-17

アセンブラで開発していたひとが3GLをはじめて見たのに匹敵するのではないかというくらい抽象度が高い。アノテーションとXMLで動くものができあがってくる謎の世界が現出している。暗箱のまま使うとピンぼけになりそうだ。

Yushi koga さん

2016-10-09

はじめてのSpring Bootと改訂版じゃないほうのSpring入門を読んだが、この本が一番わかりやすく、実用的であったと思う。 まず最初に『はじめてのSpring Boot』を読んでSpring Bootの手軽さや便利さを知ってから、『改訂版Spring入門』と『Spring徹底入門』を読んでSpringの基本的な概念と利用方法を学ぶのが学習に適しているのではないかと思う。

rcftdbeu さん

お仕事でSpring Bootを使うことになり基礎学習用に読了。ネットで調べる場合は、Aを実現するにはどうすればいいか調べれば出てくるけど、Aの存在を知らなければ調べることもできないので、知らないことを知ると言う意味でも読んだ価値があった。お仕事で明らかに使わない章は飛ばした。