
10年間本棚で眠ってた本、いい加減読もうと思った!【Spring入門 第1章】
はじめに
こんにちは!nishiです^^
今回はずっと本棚で眠っていた本を、ついに開くことにしました!
読むことにした本はこちら↓
**Spring3入門 ――Javaフレームワーク・より良い設計とアーキテクチャ**
実はこの本、なんと10年近く本棚で積ん読状態でした(汗)
「いつか読もう...」って思いながら、そのままになってたんですよね~。
最近仕事でもSpringの知識が必要になるかもしれないし、いい加減ちゃんと勉強しようと思い立ちました!
これから本を読み進めながら、私なりに理解したことをブログにアウトプットしていこうと思います!
同じように「Springって何?」って思ってる人の参考になれば嬉しいです😊 まずは第1章から、しっかり読んでいきましょう!
元にしたのは約4時間のお勉強動画です。ご興味ある方はどうぞ~
おはようレイディオ 勉強配信 【Spring3入門】10年放置してた本をついに開封!?第1章から一緒に勉強しよう! #1
まずは本書の目次
第1章 SpringとWebアプリケーションの概要
1.1 最新のSpring事情
1.2 Springのプロダクト
1.3 SpringとWebアプリケーション
1.4 Webアプリケーションとは?
1.5 アプリケーションアーキテクチャ
1.6 プレゼンテーション層の役割
1.7 ビジネスロジック層の役割
1.8 データアクセス層の役割
1.9 Webアプリケーションの抱える問題
1.10 Springの概要
第2章 SpringのDI
2.1 DIとは何か
2.2 DIの使いどころ
2.3 アノテーションを使ったDI
2.4 Bean定義ファイルでDI
第3章 SpringのAOP
3.1 DIxAOPコンテナ
3.2 AOPとは何か
3.3 Springが提供するAdvice
3.4 Proxyを利用したAOP
3.5 AOPの使いどころ
3.6 SpringAOP
第4章 データアクセス層の設計と実装
4.1 データアクセス層の役割
4.2 SpringJDBC
4.3 汎用データアクセス例外
4.4 データソース
4.5 まとめ
第5章 ビジネスロジック層の設計と実装
5.1 Webアプリケーションのトランザクション
5.2 トランザクションマネージャ
5.3 トランザクション機能の使い方
5.4 まとめ
第6章 プレゼンテーション層の設計と実装――Spring Web MVC編
6.1 Spring MVCの概要
6.2 環境作成
6.3 サンプルアプリケーションの概要
6.4 画面を表示するController
6.5 入力値を受け取るController
6.6 Spring MVCのその他の機能
6.7 まとめ
第7章 プレゼンテーション層の設計と実装――Spring Web Flow編
7.1 Spring Web Flowの概要
7.2 Spring Web FlowのState
7.3 Spring Web FlowとEL
7.4 Spring Web Flowの初期設定
7.5 簡単なフローを導入してみる
7.6 応用編
7.7 まとめ
第8章 Struts1とSpring の連携
8.1 本書が対象とするフレームワーク
8.2 Struts1の概要
8.3 サンプルアプリケーションの概要
8.4 どの方法がよいのか?
8.5 まとめ
第9章 Struts2とSpringの連携
9.1 Struts2とは?
9.2 Struts2を使用した簡単なサンプル
9.3 Action
9.4 Result(resultタグを使った遷移先のビューの設定)
9.5 ContextMap/OGNL/Struts-Tags
9.6 Interceptors
9.7 Validation
9.8 ExceptionMapping
9.9 ゼロコンフィグレーション
9.10 Struts2とSpringの連携
第10章 HibernateとSpringの連携
10.1 永続化に何を使えばいいのか?
10.2 Hibernateとは?
10.3 Hibernateの使い方
10.4 Hibernateの機能
10.5 Hibernateの課題とHibernateとの連携の目的
10.6 連携前のソースコード
10.7 インテグレーション機能によるHibernate連携
10.8 HibernateとSpringとの連携で起こるトランザクションに関わる落とし穴
第11章 JPAとSpringの連携
11.1 JPAとは何か?
11.2 POJOベースのドメインクラス
11.3 persistence.xmlファイルの編集
11.4 JPAの実行..EJBコンテナなしの場合
11.5 SpringのJPAインテグレーション機能
11.6 DAOクラスの実装
11.7 Bean定義ファイルの設定
11.8 遅延ロードの問題
11.9 遅延ロードを切る?
11.10 TransactionViewパターン
11.11 SpringのOpen EntityManagerInViewFilter
11.12 Triggering Lazy Loading
11.13 Transfar Objectを使う
11.14 選択
11.15 まとめ
第12章 MyBatis2.xとSpringの連携
12.1 SpringとMyBatis2.xとのインテグレーションの必要性
12.2 MyBatis2.xとは何か?
12.3 簡単なサンプル
12.4 MyBatis2.xの機能
12.5 MyBatis2.xとSpringの連携
12.6 まとめ
第13章 MyBatis3.xとSpringの連携
13.1 MyBatis3.xとは何か?
13.2 MyBatis3.xの主な構成物
13.3 MyBatis設定ファイル
13.4 マッピングファイル
13.5 Mapperインタフェース
13.6 Statement Builder
13.7 トランザクション処理
13.8 MyBatis3.xとSpringの連携
13.9 まとめ
付録A SpringSuiteのインストール
A.1 STSのインストール
A.2 プロジェクトの新規作成と設定
A.3 プロジェクトのインポート
付録B Spring3.0以降の新機能
B.1 Bean定義のプロファイル機能
B.2 Object/XMLマッピング連携
B.3 RESTクライアント
B.4 Cache Abstraction(キャッシュ抽象)機能
B.5 アノテーションによる非同期実行/スケジューリング実行
B.6 組み込みデータベースサポート
付録C 動作確認に使用したライブラリについて
第1章「SpringとWebアプリケーションの概要」
Springフレームワークの誕生は2002年。Javaの依存性を軽減し、Webアプリケーション開発の複雑さを解消するために登場しました。2004年に正式なバージョン1.0がリリースされ、瞬く間にJavaエンジニアの間で人気を集めたとのこと。JavaとWeb開発の複雑さに頭を悩ませていたエンジニアたちにとって、このフレームワークは救世主のような存在だったのです。
Springの歴史を追ってみよう
Springの誕生背景と初期の目標
Springの基盤は、2002年にロッド・ジョンソンが著した『Expert One-on-One J2EE Design and Development』に端を発します。彼はJavaでエンタープライズアプリケーションをもっとシンプルにしたいというビジョンを持ち、Spring Frameworkを構築。多くのJava開発者がこのアプローチに共感し、Springは瞬く間に広まりました。
バージョン1.0のリリースと急成長
2004年3月にバージョン1.0がリリースされ、Java開発における「軽量なDI(依存性注入)コンテナ」と「AOP(アスペクト指向プログラミング)」を提供しました。これにより、SpringはJavaエコシステムで急速に広まり、標準フレームワークとしての地位を築き始めました。
Springの誕生背景と初期の目標
Springの基盤が形成されたのは2002年、著名なエンジニアであるロッド・ジョンソンが書いた『Expert One-on-One J2EE Design and Development』という書籍においてでした。この本では、従来のJava EE(現在のJakarta EE)の複雑さや冗長な設定を解消するための軽量フレームワークとしてのアプローチが提案されており、Springの概念的な基盤が紹介されました。
ジョンソン氏は、自身が抱いていた「Javaでエンタープライズアプリケーション開発をもっとシンプルにしたい」というビジョンを実現するため、Spring Frameworkを構築しました。このアプローチに多くのJava開発者が共感し、Springは瞬く間に広がりを見せることになります。
バージョン1.0のリリースと急成長
2004年3月、Springはバージョン1.0として正式リリースされました。ここで初めて、Javaエンタープライズ開発において「軽量」なDIコンテナとAOPサポートを提供するフレームワークが誕生したのです。このバージョン1.0により、SpringはJava開発者の間で高い評価を得て、Javaの「デフォルト」フレームワークとしての地位を築き始めました。
拡張と統合:Spring 2.0〜3.0の時代
2006年10月にリリースされたバージョン2.0では、XMLのスキーマベースの設定が導入され、より簡潔でわかりやすい構成が可能になりました。また、データアクセスの改善も行われ、開発者が複雑な設定をシンプルに管理できるようになっています。2010年にリリースされたバージョン3.0では、Java 5以降のアノテーション機能を活用することで、XMLに依存しない設定もサポートされ、さらに柔軟なフレームワークへと進化しました。
クラウド時代への適応:Spring 4.0以降
2013年12月には、クラウド対応を視野に入れたバージョン4.0がリリースされました。この頃には、クラウドネイティブなアーキテクチャが注目を集めており、Springもクラウド対応や軽量化を一層進めることにより、多様なインフラストラクチャへの対応力を高めていきました。また、Spring Bootの登場により、Springアプリケーションの設定やデプロイがさらに簡略化され、より迅速な開発が可能になりました。
学びのポイント「DIとAOPの概念」
DIやAOPといったものが、Springの基礎概念らしいです。
DIはクラス間の依存関係を自動で管理し、柔軟でメンテナンス性の高い設計が可能に。AOPはログ記録やエラーハンドリングなどの横断的関心事を分離し、コードの再利用性を高める技術です。
Springの未来展望
現在では、Springは単なるフレームワークを超え、Javaのエコシステムに不可欠な存在となっています。Springは、クラウド環境やマイクロサービスアーキテクチャ、コンテナ技術など、現代の要求に応え続けるための進化を続けています。
今後の学習計画
まだ1章の途中(「1.4 Webアプリケーションとは?」まで)なので、次回は「1.5 アプリケーションアーキテクチャ」から読み進めていきたいと思います!
最後までお読みいただき、ありがとうございました!
詳細版はこちらの動画にて。
おはようレイディオ 勉強配信 【Spring3入門】10年放置してた本をついに開封!?第1章から一緒に勉強しよう! #1