お勉強メモ
Spring概要
最終更新:
匿名ユーザー
-
view
Spring
ロッド・ジョンソン氏を中心に開発されたJava/J2EEフレームワーク
DIコンテナという軽量コンテナをベースに、AOP、MVCフレームワーク、JDBCを抽象化したフレームワーク、既存フレームワークとのインテグレーション機能などを開発者に提供してくれるアプリケーションアーキテクチャのベースとなるもの。
Webアプリケーションの代表的なフレームワークであるStrutsやHibernateがプレゼンテーション層やデータアクセス層をカバーするフレームワークなのに対し、Springは「すべての層をカバーしているフレームワーク」。
POJOで構成された独立した業務ロジック(ビジネス層)を作れることはSpringの設計上の最大の魅力点
DIコンテナのメリット
委譲を利用した、より柔軟なアーキテクチャを構築することができること
DIコンテナはPOJOをシステム内で1つしかインスタンス化する必要のないクラス(Singleton)として管理し、利用者に提供する。
これにより、SingletonのロジックがハードコーディングされていないPOJOの再利用性は高くなる、Singletonクラスが必要でない場合は、Bean定義ファイルに「このクラスはSingletonではない」と宣言すればよい。
DIコンテナとAOP機能を利用することにより、クラスの責務以外の処理をオブジェクトに追加することも可能。
宣言的にオブジェクトに機能を追加できるのはSpringのAOPがSpring DIコンテナをベースにしているから。
DIコンテナでオブジェクトのライフサイクルを管理
→委譲ベースの柔軟なアーキテクチャの実現(変更に強い)
DIコンテナをベースにPOJOで実装
→クラスの理解が容易
→テストが容易
DIコンテナをベースにさまざまなフレームワークを利用可能
→構造の理解が容易
→AOPによる責務以外の処理を分離
クラスの理解が容易
クラスの作成が容易
→AOPによる宣言的な処理の追加
責務以外の振る舞いの追加が容易(変更に強い)
ロッド・ジョンソン氏を中心に開発されたJava/J2EEフレームワーク
DIコンテナという軽量コンテナをベースに、AOP、MVCフレームワーク、JDBCを抽象化したフレームワーク、既存フレームワークとのインテグレーション機能などを開発者に提供してくれるアプリケーションアーキテクチャのベースとなるもの。
Webアプリケーションの代表的なフレームワークであるStrutsやHibernateがプレゼンテーション層やデータアクセス層をカバーするフレームワークなのに対し、Springは「すべての層をカバーしているフレームワーク」。
Springの提供する主な機能
- DIコンテナ
- MVCフレームワーク
- JDBC抽象化フレームワーク
- AOPフレームワーク
- Webインテグレーション機能
- ORMインテグレーション機能
POJOで構成された独立した業務ロジック(ビジネス層)を作れることはSpringの設計上の最大の魅力点
DIコンテナのメリット
委譲を利用した、より柔軟なアーキテクチャを構築することができること
DIコンテナはPOJOをシステム内で1つしかインスタンス化する必要のないクラス(Singleton)として管理し、利用者に提供する。
これにより、SingletonのロジックがハードコーディングされていないPOJOの再利用性は高くなる、Singletonクラスが必要でない場合は、Bean定義ファイルに「このクラスはSingletonではない」と宣言すればよい。
DIコンテナとAOP機能を利用することにより、クラスの責務以外の処理をオブジェクトに追加することも可能。
宣言的にオブジェクトに機能を追加できるのはSpringのAOPがSpring DIコンテナをベースにしているから。
DIコンテナでオブジェクトのライフサイクルを管理
→委譲ベースの柔軟なアーキテクチャの実現(変更に強い)
DIコンテナをベースにPOJOで実装
→クラスの理解が容易
→テストが容易
DIコンテナをベースにさまざまなフレームワークを利用可能
→構造の理解が容易
→AOPによる責務以外の処理を分離
クラスの理解が容易
クラスの作成が容易
→AOPによる宣言的な処理の追加
責務以外の振る舞いの追加が容易(変更に強い)