Springの全体的なアーキテクチャと環境(1)

1.全体的なアーキテクチャ

Springは階層化されたアーキテクチャであり、一連の機能要素が含まれており、図に示すように約20のモジュールに分かれています。

Springアーキテクチャ図
これらのモジュールは次のように要約されます。

①コアコンテナ

Core Container (コア・コンテナ)が含まBeans、Core、ContextExpression LanguageコアとBeanはフレームワークの基本モジュールであり、IOC(制御反転)とDI(依存性注入)を制御します。

  • Coreモジュールには主に、Springフレームワークの基本的なコアツールクラスが含まれています。他のすべてのSpringコンポーネントは、このパッケージのクラスに依存する必要があります。コアモジュールは、他のコンポーネントの基本的なコアです。
  • Beansモジュールはすべてのアプリケーションで必要であり、構成ファイルへのアクセス、Beanの作成と管理、IOC / DI操作の実行に関連するすべてのクラスが含まれます。
  • Contextこのモジュールは、CoreおよびBeansモジュールに基づいて構築されており、JNDIレジストラと同様のフレームワークのようなオブジェクトアクセスメソッドを提供します。コンテキストはBeanの特別な機能を統合し、Springコアに多くの拡張を提供し、国際化、イベントの伝播、リソースのロード、およびコンテキストの透過的な作成のサポートを追加します。コンテキストの同僚は、EJB、JMX、基本的なリモート処理など、J2EEのいくつかの機能もサポートしています。ApplicationContextインターフェースは、Contextモジュールの鍵です。
  • Experssion Language実行時にオブジェクトを照会および操作するための式言語が提供されています。これは、JSP2仕様で定義されている統一された式言語の拡張です。この言語は、オブジェクトの属性値の設定/取得、属性の割り当て、メソッドの呼び出し、デジタルテキストへのアクセス、コンテナーとインデクサー、論理演算子と算術演算子、および名前付き変数をサポートしますそして、SpringのIOCコンテナーから名前でオブジェクトを取得します。また、リストの投影、選択、および一般的なリスト集約もサポートしています。

②データアクセス/統合
Data Access/IntegrationレイヤーにはモジュールJDBC、ORM、OXM、JMSが含まれTransactionます。

  • JDBCこのモジュールはJDBC抽象化レイヤーを提供し、長いJDBCコーディングとデータベースベンダー固有のエラーコードの解析を排除します。
  • ORM一般的なオブジェクトリレーショナルマッピングAPI。そのようなJPAとおりJDOHibernate、、iBatisなど、インタラクティブな層を提供することを目的とします。
  • OXM オブジェクト/ XMLマッピングに関する抽象レイヤーを提供します。
  • JMS メッセージの送受信をカプセル化します。
  • Transaction プログラムによる宣言型トランザクション管理をサポートします。

③ウェブ

Webコンテキストモジュールは、アプリケーションコンテキストモジュール上に構築され、Webベースのアプリケーションにコンテキストを提供するため、SpringフレームワークはJakarta Strutsとの統合をサポートしています。Webモジュールは、ほとんどの要求の処理と要求パラメーターのドメインオブジェクトへのバインドも簡素化します。Webモジュールは、メイン含まれWebWeb-ServletWeb-StrutsおよびWeb-Porletモジュールを。

  • Webモジュール:基本的なWeb指向の統合機能を提供します。例:ファイルのアップロード、サーブレットリスナーを使用したIOVコンテナーとWeb指向のアプリケーションコンテキストの初期化。
  • Web-Servlet 主にSpring MVCのいくつかの機能をカプセル化します。
  • Web-Struts Spring 3.0で廃止されたStrutsのカプセル化サポート。
  • Web-Porlet Porlet環境とWeb-ServletモジュールのMVC実装を提供します。

④AOP

アスペクト指向の実装を提供します。応募者は、メソッドインターセプターとポイントカットを定義して、分離のためにロジックとコードを分離できます。

⑤テスト

Testモジュールは、JUnitとTestNgを使用したSpringのテストをサポートしています。

2.環境構築

①ソースコードのプル:https :
//github.com/spring-projects/spring-framework

②IDEAインポート

③cglibとobienesisのコンパイルエラーを解決する

問題の原因:サードパーティのクラスとの競合を回避するために、Springは最新のcglibとobienesisを再パッケージ化しました。ソースコードにコードのこの部分を提供していませんでしたが、jarパッケージに直接入れたため、コードをプルしてインポートすると、コンパイルエラーが発生します。

IDEAの右側でGradleを開き、spring-coreを選択して、cglibRepackJarとobjenesisRepackJarを他の環境で実行し、欠落している2つの依存関係を自動的に導入します。

Cglibおよびobienesisコンパイルエラーが解決されました
以降のコード分析は、分析と調査のための5.2.5.Releaseバージョンに基づきます。
ここに画像の説明を挿入

公開された41元の記事 ウォン称賛14 ビュー10000 +

おすすめ

転載: blog.csdn.net/Yunwei_Zheng/article/details/104039806