Springフレームワークのアーキテクチャとディレクトリ構造

Spring は、階層化された JavaEE/SE ワンストップ (フルスタック) 軽量開発フレームワークであり、Rob Jonson によってレンタルおよび開発されました。彼の中心的なアイデアは、制御の反転 IOC とアスペクト指向プログラミング (aop) プログラミングであり、IoC は Spring の基盤です。 Java Beans に対する Spring の管理機能をサポートする; Aop は Spring の重要な機能であり、AOP は、コードを変更することなく、プリコンパイルされたメソッドと実行時の動的エージェントを通じてプログラム機能を実現します。プログラム。
Spring は、プレゼンテーション層、ビジネス ロジック層、永続化層で動作します。
プレゼンテーション層では Spring MVC フレームワークが提供され、
ビジネス ロジック層ではトランザクションの管理とログの記録が可能です。永続
化層では、MyBatis、Hibernate、JDBCTemplate などのテクノロジを統合できます
。 Spring フレームワークは階層構造を採用しており、機能別に 21 のモジュールに分かれており、主に 8 つのモジュールに分かれています。
ここに画像の説明を挿入

1.コアコンテナ

Spring のコア コンテナは他のモジュールの基盤であり、Spring の機能システムでサポートの役割を果たし、他のモジュールの基礎となります。Beansモジュール、Coreコアモジュール、Contextコンテキストモジュール、SpEL表現言語モジュールで構成されており、これらのコアコンテナがなければAOPやWebなどの上位層機能を実現することができません。詳細は以下の通りです。

Beansモジュール

Bean モジュールは、ファクトリ パターンの古典的な実装である BeanFactory クラスを提供します。Bean モジュールの主な機能は、Bean オブジェクトの作成と管理です。

コアコアモジュール

これは、リソース アクセス、型変換、いくつかの共通ツール クラスなど、Spring フレームワークの基礎となる部分をカプセル化します。Ioc や DI など、Spring フレームワークの基本コンポーネントを提供します。

コンテキストコンテキストモジュール

コンテキストはコア モジュールと Beans モジュールに基づいて構築され、Beans モジュールの機能を統合し、リソース バインディング、データ検証、国際化、Java EE サポート、コンテナ ライフ サイクル、イベント伝播などを追加します。ApplicationContext インターフェイスは、コンテキスト モジュールの中心です。

SpELモジュール

SpEL (Spring Expression Language) モジュールは Spring 3.0 以降の新しいモジュールで、強力な式言語サポートを提供し、属性値へのアクセスと変更、メソッド呼び出しをサポートし、配列、コンテナーとインデクサー、名前付き変数へのアクセスと変更をサポートし、算術演算と論理操作、Spring コンテナから Bean を取得するサポート、リスト投影、選択、一般的なリスト集計などもサポートします。

2. データアクセス/統合

データ アクセス/統合レイヤーには、JDBC、ORM、OXM、JMS、およびトランザクション モジュールが含まれます。その詳細は次のとおりです。

JDBCモジュール

JDBC-Java データベース接続モジュールは、面倒な JDBC コーディングとデータベース ベンダー固有のエラー コードの解析を排除する JDBC 抽象化レイヤーを提供します。

ORMモジュール

ORM オブジェクト リレーショナル マッピング モジュールは、JPA、JDO、Hibernate などの一般的なオブジェクト リレーショナル マッピング API との統合を提供します。このモジュールを通じて、これらの ORM フレームワークを Spring の他の機能と統合できます。

OXMモジュール

OXM-Object XML Mapping モジュールは、JAXB、Castor、XML Beans、JiBX、XStream などの OXM 実装のサポートを提供します。

JMSモジュール

JMS-Java Messaging Service モジュールには、メッセージを生成および消費するための関数が含まれています。Spring 4.1 以降、spring-messaging モジュールが統合されています。

トランザクションモジュール

トランザクション モジュールは、特別なインターフェイス クラスとすべての POJO を実装するためのプログラムおよび宣言型トランザクション管理をサポートします。(注: プログラムによるトランザクションは、beginTransaction()、commit()、rollback() などのトランザクション管理メソッドを記述する必要があります。宣言的なトランザクションは、アノテーションまたは構成を通じて Spring によって自動的に処理され、プログラムによるトランザクションの粒度はより細かくなります)

ウェブモジュール

Web モジュールの実装は、Web-Socket、Servlet、Web、Portlet などの Web アプリケーション用のさまざまなツール クラスを提供する ApplicationContext に基づいています。

Webソケットモジュール

Web-Socket モジュールは Spring 4.0 以降の新しいモジュールで、WebSocket と SockJS の実装を提供し、Web アプリケーション内のクライアントとサーバー間の 2 つの通信方法を提供します。

サーブレットモジュール

Servlet モジュールは、Web アプリケーション用の Spring のモデル、ビュー、コントローラー、および REST Web サービスの実装を提供します。

ウェブモジュール

Web モジュールは、ほとんどのファイル アップロード機能など、Web 開発用の統合機能を提供します。さらに、Web モジュールには、Spring リモーティングによってサポートされるクライアントと Web 関連の部分も含まれています。

ポートレットモジュール

ポートレット モジュールの機能はサーブレット モジュールの機能と似ており、ポートレット環境に MVC 実装を提供し、spring-webmvc モジュールの機能を反映します。

4. その他のモジュール

AOP、Aspects、Instrumentation、Web、Testing モジュールなど、他にも重要なモジュールがあり、その詳細は次のとおりです。

AOPモジュール

AOP モジュールはアスペクト指向 (アスペクト) プログラミング実装を提供し、メソッド インターセプターとポイントカットを定義してコードをきれいに分離できるため、関数を実装するコードが完全に分離されます。ソースレベルのメタデータを使用すると、.Net プロパティと同様の方法で動作情報をコードに組み込むことができます。

アスペクトモジュール

Aspects モジュールは、強力で成熟したアスペクト指向プログラミング (AOP) フレームワークである AspectJ との統合を提供します。
インストルメンテーション モジュール I
インストルメンテーション モジュールは、クラス インストルメンテーションのサポートと、特定のアプリケーション サーバーでのクラス ローダーの実現を提供します。
メッセージング モジュール
メッセージング モジュールは、アプリケーションで使用する WebSocket サブプロトコルとして STOMP のサポートを提供します。また、WebSocket クライアントからの STOMP メッセージをルーティングおよび処理するための注釈付きプログラミング モデルもサポートしています。

テストモジュール

テスト モジュールは、JUnit または TestNG フレームワークを使用した Spring コンポーネントのテストをサポートします。
よく使用されるモジュール間の依存関係
ここに画像の説明を挿入

春のディレクトリ構造

https://repo.spring.io/ui/native/release/org/springframework/spring/
ダウンロードして解凍すると、docs、libs、schemaの3つのフォルダーができます

ドキュメントフォルダー

このフォルダーには、開発ガイドや API リファレンス ドキュメントなどの Spring 関連ドキュメントが保存されます。

libsフォルダー

開発に必要な jar パッケージとソース コードはこのフォルダーに格納されます。Spring フレームワーク全体は 21 のモジュールで構成されます。libs ディレクトリには、Spring はモジュールごとに 3 つの圧縮パッケージを提供します。したがって、libs フォルダーには 63 の圧縮パッケージがあります。63 の圧縮パッケージは 3 つのカテゴリに分類されます。
RELEASE.jar で終わる JAR パッケージは、Spring フレームワークのクラス ファイルです。 RELEASE-javadoc.jar で終わる JAR パッケージは、次で終わる
Spring フレームワークの API ドキュメントの圧縮パッケージです。
RELEASE-source.jar JAR パッケージは、Spring フレームワークのソース コードの圧縮パッケージです。

スキーマフォルダー

さまざまな Spring 構成ファイルの XML スキーマ ドキュメントがこのフォルダーに保存されます

知らせ

Spring 開発を使用する場合、組み込みの jar パッケージの使用に加えて、spring のコア コンテナーには commons-logging jar パッケージも必要です。

おすすめ

転載: blog.csdn.net/yandao/article/details/130865180
おすすめ