1.アーキテクチャ図
Spring Frameworkは、3つのレイヤーに分かれています。最下層は、Bean、コア、コンテキスト、式(スペル)を含むコアレイヤーです。中間レイヤーは、aop、アスペクト、インストルメント、およびを含むカプセル化されたJ2EEサービス(エンタープライズレイヤー)です。メッセージングであり、最上位層はアプリケーションです。この層は2つの部分で構成され、1つの部分はjdbc、orm、oxm、jmsを含むデータ層であり、2つの部分はweb、webmvc(servlet)を含むWeb層です。次の図に示すように、websocketとwebflux:
ソースコードモジュールは次のとおりです。
2.コアコンテナ(最下層)
コアコンテナには、spring-beans、spring-core、spring-core-coroutines、spring-context、spring-context-indexer、spring-context-support、およびspring-expressionが含まれます。関数は次のとおりです。
spring-beansとspring-core:制御機能のIOC反転を含む、Springのフレームワーク基盤。BeanFactoryは、特定のプログラムからBeanの構成と依存関係を切り離すファクトリパターンの実現です。
spring-context: spring-beansとspring-coreに基づいて構築されており、その機能には、コンテキストの作成、国際化のサポート、イベントブロードキャスト、リソースの読み込みなどが含まれます。ApplicationContextはspring-contextの焦点です。
spring-context-support:一般的なサードライブラリのサポートを提供し、スプリングコンテキスト(コンテキスト)、キャッシング(ehcache、guava)、通信(javamail)、スケジューリング(quartz、commonj)、テンプレート(freemarkerなど)などのサードパーティライブラリに統合されます、速度)など。
spring-expression:実行時にオブジェクトグラフをクエリおよび操作するための強力な式言語(SPEL)を提供します。この言語は、属性値、属性パラメーター、メソッド呼び出し、配列コンテンツストレージ、コレクションとインデックス、ロジックと算術演算、および名前付け変数をサポートします。 Springのコントロール反転コンテナからオブジェクトを名前で取得します。
3つ、J2EEカプセル化レイヤー
J2EEカプセル化レイヤーには、spring-aop、spring-aspects、spring-instrument、spring-messagingが含まれ、機能は次のとおりです。
spring-aop、spring-aspects: spring-aopはアスペクト指向プログラミングの実装を提供し、spring-aspectsはaopでのaspectjの統合と実装を提供します
spring-instrument:サーバーにクラスレベルのツールサポートとClassLoaderレベルの実装を提供します
spring-messaging: Message、MessageChannel、MessageHandlerなどの基本的なメッセージベースのサービスを提供します。このモジュールは、Spring 4によって追加された、Spring統合とは別の新しいモジュールです。
第四に、アプリケーション層
4.1、データアクセス/統合
データアクセス/統合には、spring-oxm、spring-orm、spring-jdbc、spring-jmsが含まれ、機能は次のとおりです。
spring-oxm: JAXB、XStreamなどのオブジェクト/ XMLマッピングの実装をサポートするための抽象化レイヤーを提供します。
spring-orm: Hibernate、JPAなどのオブジェクトリレーショナルマッピング用のAPI統合レイヤーを提供します。
spring-jdbc:長いJDBCコードを記述したり、データベースベンダー固有のエラーコードを解析したりする必要のないJDBC抽象化レイヤーを提供します。一般的に、sqlステートメントレイヤーを提供します。
spring-jms:メッセージを生成および消費する機能を提供し、メッセージ処理を実現するためにspring-messagingモジュールと組み合わせて使用されます
4.2、Webアプリケーション
Webアプリケーションには、spring-web、spring-webflux、spring-webmvc、spring-websocketが含まれます。機能は次のとおりです。
spring-web:ファイルのアップロード、Web開発アプリケーションのコンテキスト初期化IOCコンテナーなど、基本的なWeb開発指向の統合機能を提供し、SpringリモートアクセスでサポートされるHTTPクライアントおよびWeb関連パーツも含まれます。
spring-webmvc:これはおなじみのMVC、つまりModel-View-Controllerであり、RestWebサービスによって実装されたWebアプリケーションが含まれています。
spring-websockt: Webアプリケーションでソケットリンクサービスを提供します
spring-webflux:リアクティブHTTP、サーバープッシュイベント、およびWebSocketのクライアントおよびサーバーサポートを提供します