SpringFramework-アーキテクチャ
Springは、すべてのエンタープライズアプリケーションのワンストップショップになる可能性があります。ただし、Springはモジュール式であるため、残りのモジュールを持ち込むことなく、適用可能なモジュールを選択できます。次のセクションでは、SpringFrameworkで使用可能なすべてのモジュールについて詳しく説明します。
Spring Frameworkは、アプリケーションの要件に基づいて使用できる約20のモジュールを提供します。
コアコンテナ
コアコンテナは、コア、Bean、コンテキスト、および式言語モジュールで構成されており、その詳細は次のとおりです。
ザ・ Core モジュールは、IoCおよび依存性注入機能を含むフレームワークの基本的な部分を提供します。
ザ・ Bean モジュールは、ファクトリパターンの高度な実装であるBeanFactoryを提供します。
ザ・ Contextモジュールは、CoreモジュールとBeansモジュールによって提供される堅固な基盤の上に構築されており、定義および構成されたオブジェクトにアクセスするための媒体です。ApplicationContextインターフェースは、Contextモジュールの焦点です。
ザ・ SpEL モジュールは、実行時にオブジェクトグラフをクエリおよび操作するための強力な式言語を提供します。
データアクセス/統合
データアクセス/統合レイヤーは、JDBC、ORM、OXM、JMS、およびトランザクションモジュールで構成されています。詳細は次のとおりです。
ザ・ JDBC モジュールは、面倒なJDBC関連のコーディングの必要性を排除するJDBC抽象化レイヤーを提供します。
ザ・ ORM モジュールは、JPA、JDO、Hibernate、iBatisなどの一般的なオブジェクトリレーショナルマッピングAPIの統合レイヤーを提供します。
ザ・ OXM モジュールは、JAXB、Castor、XMLBeans、JiBX、およびXStreamのオブジェクト/ XMLマッピング実装をサポートする抽象化レイヤーを提供します。
Javaメッセージングサービス JMS モジュールには、メッセージを生成および消費するための機能が含まれています。
ザ・ Transaction モジュールは、特別なインターフェイスを実装するクラスおよびすべてのPOJOのプログラムおよび宣言型トランザクション管理をサポートします。
ウェブ
Webレイヤーは、Web、Web-MVC、Web-Socket、およびWeb-Portletモジュールで構成されており、その詳細は次のとおりです。
ザ・ Web モジュールは、マルチパートファイルアップロード機能やサーブレットリスナーとWeb指向のアプリケーションコンテキストを使用したIoCコンテナの初期化など、基本的なWeb指向の統合機能を提供します。
ザ・ Web-MVC モジュールには、Webアプリケーション用のSpringのModel-View-Controller(MVC)実装が含まれています。
ザ・ Web-Socket モジュールは、Webアプリケーションのクライアントとサーバー間のWebSocketベースの双方向通信のサポートを提供します。
ザ・ Web-Portlet モジュールは、ポートレット環境で使用されるMVC実装を提供し、Webサーブレットモジュールの機能をミラーリングします。
その他
AOP、アスペクト、インストルメンテーション、Web、テストモジュールのような他の重要なモジュールはほとんどありません。詳細は次のとおりです。
ザ・ AOP モジュールはアスペクト指向プログラミングの実装を提供し、メソッドインターセプターとポイントカットを定義して、分離する必要のある機能を実装するコードを明確に分離できるようにします。
ザ・ Aspects モジュールは、強力で成熟したAOPフレームワークであるAspectJとの統合を提供します。
ザ・ Instrumentation モジュールは、特定のアプリケーションサーバーで使用されるクラスインストルメンテーションサポートとクラスローダー実装を提供します。
ザ・ Messagingモジュールは、アプリケーションで使用するWebSocketサブプロトコルとしてSTOMPのサポートを提供します。また、WebSocketクライアントからのSTOMPメッセージをルーティングおよび処理するための注釈プログラミングモデルもサポートしています。
ザ・ Test モジュールは、JUnitまたはTestNGフレームワークを使用したSpringコンポーネントのテストをサポートします。