Spring5ソースコード解析(1)設計と建設

1
(中国・リアクション)送信元アドレス[email protected]:yakax /春・フレームワーク5.0.2.RELEASE  -  gitの。

春は実際に我々の開発を簡素化するために設計されています

  1. POJOの軽量かつ低侵襲性のプログラミング。
  2. 依存性注入と緩くインタフェースに結合されました。
  3. 宣言型プログラミングに基づいて、セクションと慣性。
  4. カットやテンプレートを経由して定型的なコードを削減。

ビーン(BOP)のために、これらの3つの方法の依存性注入(DI)とアスペクト指向(AOP)を達成するために:そして彼は主に介していました。

豆指向

  • 春は豆指向プログラミング(豆指向プログラミング、BOP)で、豆は、春の本当の主人公です。
  • IOC(制御の反転):制御の反転最も一般的な方法は、制御反転にDI(DI)によって達成されるが、直接スプリング依存性注入と呼ばれます。

    早春にDL(依存ルックアップ)、および低周波数の使用後原因を取り除きあります。

依存性注入の基本的な考え方(DI)の

春のデザインのコアorg.springframework.beansパッケージ(コア・アーキテクチャはorg.springframework.coreある
パッケージ)、それはJavaBeanコンポーネントを使用するために設計されています。このパッケージは、通常、ユーザーが直接使用されていませんが、サーバーによってために
基本となるインターポーザ他のほとんどの機能として使用します。抽象化の次に高いレベルがたBeanFactoryインタフェースである、それは、工場出荷時のデザインパターンの実現である
、それは名前でオブジェクトを作成し、取得することができます。オブジェクト間たBeanFactory関係も管理することができます。
たBeanFactoryは、2つの最低レベルのオブジェクトモデルをサポートしています。

  1. 単例:特定の名前を持つオブジェクトのグローバル共有インスタンスを提供し、それはクエリで検索することができます。シングルトンは、デフォルトで
    特定され、最も一般的なオブジェクトモデル。
  2. プロトタイプ:各検索は、オブジェクトの別のインスタンスを作成することを確実にします。各ユーザーは、プロトタイプモデルを使用して、独自のオブジェクトを必要とする場合。
    コンセプトは、IOCのコンテナのための基礎として、春の豆を植えることです。IOCは、物事を処理する責任がにアプリケーションコードから転送されることになる
    フレームワーク。

AOPプログラミング概念

アスペクト指向プログラミング、つまりAOPは、プログラミングのアイデアでは、プログラマは、横断的関心事を行うか、モジュラー(例えば、ロギングおよびトランザクション管理のような)一般的な業務の境界を横断することを可能にします。コア構造は、再利用可能なモジュールの複数のクラスにそれらのパッケージの動作に影響を与えるAOP(セクション)の態様である、AOP機能は完全スプリングトランザクション管理、コンテクストログと様々な他の特性に組み込まれます。

Spring5システムアーキテクチャ

コア・コンテナ
  • 春コア和春豆

    制御の逆転を含むスプリングフレームワークコアモジュール、(反転ofControl、IOC)、及び依存性注入(依存性注入、DI)。たBeanFactoryインタフェースは、工場モデルに具現されたスプリングフレームワークのコアへのインタフェースです。制御及びアプリケーション依存仕様と実際のアプリケーション・コードを用いた構成の反転たBeanFactoryを分離しました。しかし、自動的にBeanのインスタンス化していないインスタンス化コンテナたBeanFactoryは、依存関係をインスタンス化しますビーンたBeanFactoryコンテナがビーンと組み立てされている場合にのみ使用されます。

  • 春コンテキスト

    コアモジュールのトップは、彼が彼女のためにビーンのライフサイクル管理、システムイベントフレームワークと透明リソースの負荷やその他の機能を追加し、たBeanFactoryを拡張します。また、モジュールはまた、電子メールアクセス、リモートアクセス、タスクのスケジューリングとして、エンタープライズレベルのサポートの数を提供し、ApplicationContextのモジュールのコア・インタフェースである、彼女はたBeanFactoryスーパーされ、
    ApplicationContextの容器は全て自動的にインスタンス化した後、たBeanFactory異なりますモノ-および豆の例には、アセンブリの依存関係をインスタンス化するように、待機状態です。

  • 春・コンテキストのサポート

    春IOCコンテナとコンテナIOCの子供のための拡張サポート。

  • 春・コンテキストインデクサ

    スプリングクラス管理コンポーネントとクラスパススキャン。

  • 春表現

    統一式言語(EL)拡張モジュールには、オブジェクト管理操作を照会することができるだけでなく、容易にオブジェクトのメソッドがそうでアレイ、コレクションおよび操作を呼び出すことができます。その構文は、従来のELに似ていますが、関数呼び出しと、単純な文字列の数に最良のテンプレート機能、追加機能を提供します。言語の特徴は春の製品設計のニーズに基づいており、彼は簡単に連携春IOCとすることができます。

AOPとデバイスのサポート
  • 春、AOP

    スプリングは、他のコアモジュールは、AOPは、メイン実装モジュールです。プログラマのための最大のプログラミングのアイデアの一つに影響を与え、OOPを次のように、AOPを大幅にプログラミングのための人々のアイデアを開きました。春に、彼はJVである大型カラム  (1)は、デザインおよび構造Spring5ソースコード解析動的剤技術は、そのような事前通知、リターンとして横断的AOP実装、一連の設計Mに基づいて、アドバイスをスロー等、一方、ポイントカットインタフェースマッチングエントリポイントは、既存のポイントカット断面を用いて設計することができる、方法を切断関連のニーズに応じて拡張することができます。

  • 春、側面

    AspectJの統合フレームワークので、主にAOP春AOPの実装の多様を提供します

  • 春-機器

    JAVA SEは、「java.lang.instrument」設計に基づいて、モジュールのAOPサポートとみなされるべきで、主な役割は、JVMで有効になっている、プロキシクラスを生成、クラスを変更する単語、実行時に、プロキシクラスによってプログラマセクションは、それによって、AOPの機能を実現するために、クラスの機能を変化させます。分類では、私はここで、この場所でAOPモジュール春公式ドキュメントの下分に少し漠然と彼を置く純粋に個人的な見解です。

データアクセスと統合
  • 春-JDBC

    簡略操作するスプリング、スプリングJDBCによって提供される主実装モジュールJDBC抽象化フレームワーク。JDBCプログラミングを単純化するためにJDBCテンプレート、リレーショナルデータベースオブジェクト指向の方法、SimpleJdbcの道、トランザクション管理を提供するための主な方法は、主に実装クラスは、JdbcTemplate、SimpleJdbcTemplateとNamedParameterJdbcTemplateです。

  • 春-TX

    春のJDBCトランザクション制御実装モジュール。Springフレームワークを使用して、そのAOPの設定、任意のレベルで柔軟な構成によって、非常に良いパッケージ総務を行っている。しかし、多くのニーズや用途に、直接JDBCトランザクション制御は、まだその利点を持っています。実際には、ビジネスは、ビジネス・ロジック・ベースであり、ビジネスレイヤ内の方法は、完全なビジネスに対応している必要があり、ビジネスが失敗した場合、全体のトランザクションがロールバックされるため、それは絶対トランザクション制御は、サービス層に配置されるべきであるが、それぞれの方法で永続化層を分割してはならないことを保証するために、アトミック・オペレーション:永続層の設計は非常に重要な原則に従ってください。春のJDBCトランザクション制御を使用するときしたがって、それは、その特殊性に注意を払う必要があります。

  • 春、ワーム

    ORMフレームワークのサポートモジュール、主要な統合Hibernateは、JPA(Java Persistence API)のとJavaデータは、リソース管理のための(JDO)のオブジェクト、データアクセスオブジェクト(DAO)の実装およびトランザクション戦略。

  • 春、OXM

    主に、例えば、(OXMは、オブジェクトへのXMLマッピングの頭字語であり、それはXMLデータにO / M-マッパ、マッピングJavaオブジェクトであり、またはJavaオブジェクトにXMLデータをマッピングするために)支持OXMに抽象化の層を提供します。 JAXB、キャスター、XMLBeansでは、JiBXのとXStreamののように。

  • 春-JMS

    (Javaのメッセージングサービス)は、後に、彼はまた、スプリング・メッセージングモジュールのサポートを提供春Frameworkの4.1からの情報を送受信します。

Webコンポーネント

-springウェブ

春はIOCを初期化するために、主にコア・コンテナの上に構築された、最も基本的なWebサポートを提供し、またはリスナーサーブレットコンテナによって、また、いくつかのWeb関連のサポートが含まれています。

  • ばねwebmvcモジュールがされている
    1ウェブサーブレット・モジュールであることが知られている、スプリングMVC(モデル-ビュー-コントローラ ) Webアプリケーション。ばねのWebSocketモジュールは、主にWebフロントエンドとの全二重通信プロトコルです。
  • 春・ウェブは
    、非同期、非ブロック、イベント駆動型サービスを作成するために使用することができ、新たな非目詰まり官能性反応性のWebフレームワークであり、かつ拡張性は非常に良いです
通信报文
  • 春・メッセージングモジュール

    新しく追加されたモジュールから始めるSpring4、主な責任は、春のフレームワークのためのいくつかの基本的なメッセージングアプリケーションを統合することです。

    統合テスト
  • 春試験

    サポートを提供するために、メインのテストケースは、すべての後に、アプリケーションサーバーに(プログラム)を放出または任意のビジネスのためのいくつかの統合テストやその他のテストを実行することができ、他の事業所に接続する必要はありませんが非常に重要です。

    互換性のある統合
  • 春・フレームワーク-BOM

    さまざまな問題の異なるバージョンに対処するための部品表(BOM)。Springの依存モジュール

各モジュール図

春のバージョンの命名規則

説明の方法 説明 意味
スナップショット スナップショット それは、安定していない開発版にまだあります
解除 安定しました この関数は、外部の問題は比較的安定しているが、時間制限があります
GA 公式バージョン 広く利用可能な安定したバージョン(一般出荷)の代表
M マイルストーンバージョン いくつかのバージョンが新しい機能やランドマークを持っている持っている(Mはマイルストーンの意味です)。
RC 最終テストバージョン 次期リリースの正式版として、候補者(最終テスト)をリリース。

おすすめ

転載: www.cnblogs.com/lijianming180/p/12046801.html