Spring-overview

提供:Dev Guides
移動先:案内検索

Spring Framework-概要

Springは、エンタープライズJava用の最も一般的なアプリケーション開発フレームワークです。 世界中の何百万人もの開発者がSpring Frameworkを使用して、パフォーマンスが高く、テストが容易で再利用可能なコードを作成しています。

Springフレームワークは、オープンソースのJavaプラットフォームです。 最初にロッドジョンソンによって書かれ、2003年6月にApache 2.0ライセンスで最初にリリースされました。

Springはサイズと透明度に関しては軽量です。 Springフレームワークの基本バージョンは約2MBです。

Spring Frameworkのコア機能はJavaアプリケーションの開発に使用できますが、Java EEプラットフォーム上にWebアプリケーションを構築するための拡張機能があります。 Springフレームワークは、J2EE開発を使いやすくすることを目的としており、POJOベースのプログラミングモデルを有効にすることで優れたプログラミングプラクティスを促進します。

Spring Frameworkを使用する利点

以下は、Spring Frameworkを使用することの大きな利点のいくつかのリストです-

  • Springを使用すると、開発者はPOJOを使用してエンタープライズクラスのアプリケーションを開発できます。 POJOのみを使用する利点は、アプリケーションサーバーなどのEJBコンテナー製品は必要ないが、Tomcatや一部の商用製品などの堅牢なサーブレットコンテナーのみを使用するオプションがあることです。
  • 春はモジュール式に構成されています。 パッケージとクラスの数は膨大ですが、必要なものだけを心配し、残りは無視する必要があります。
  • Springは車輪を再発明するのではなく、いくつかのORMフレームワーク、ロギングフレームワーク、JEE、Quartz、JDKタイマー、およびその他のビューテクノロジーなどの既存のテクノロジーを真に活用します。
  • 環境依存コードがこのフレームワークに移動されるため、Springで記述されたアプリケーションのテストは簡単です。 さらに、JavaBeanstyle POJOを使用することにより、テストデータの注入に依存性注入を使用することが容易になります。
  • SpringのWebフレームワークは、適切に設計されたWeb MVCフレームワークであり、StrutsなどのWebフレームワークや、過剰に設計されたWebフレームワーク、またはあまり人気のないWebフレームワークの優れた代替手段となります。
  • Springは、技術固有の例外(たとえば、JDBC、Hibernate、またはJDOによってスローされる)を一貫した未チェックの例外に変換する便利なAPIを提供します。
  • 軽量のIoCコンテナーは、特にEJBコンテナーなどと比較した場合、特に軽量になる傾向があります。 これは、メモリとCPUリソースが限られているコンピューターでアプリケーションを開発および展開するのに役立ちます。
  • Springは、ローカルトランザクション(たとえば、単一のデータベースを使用)にスケールダウンし、グローバルトランザクション(たとえば、JTAを使用)にスケールアップできる一貫したトランザクション管理インターフェイスを提供します。

依存性注入(DI)

Springで最も特定されているテクノロジーは、Inversion of Controlの* Dependency Injection(DI)*フレーバーです。 * Inversion of Control(IoC)*は一般的な概念であり、さまざまな方法で表現できます。 依存性注入は、Inversion of Controlの具体例の1つ​​にすぎません。

複雑なJavaアプリケーションを記述する場合、アプリケーションクラスは他のJavaクラスから可能な限り独立している必要があります。これにより、これらのクラスを再利用し、ユニットテスト中に他のクラスとは独立してテストできるようになります。 依存性注入は、これらのクラスを結合し、同時にそれらを独立した状態に保つのに役立ちます。

依存性注入とは何ですか? これら2つの単語を別々に見てみましょう。 ここでは、依存関係部分は2つのクラス間の関連付けに変換されます。 たとえば、クラスAはクラスBに依存しています。 次に、2番目の部分であるインジェクションを見てみましょう。 つまり、クラスBはIoCによってクラスAに注入されます。

依存性注入は、コンストラクターにパラメーターを渡す方法で、またはセッターメソッドを使用して構築後に行うことができます。 依存性注入はSpring Frameworkの心臓部であるため、この概念を別の章で関連する例とともに説明します。

アスペクト指向プログラミング(AOP)

Springの主要コンポーネントの1つは、* Aspect Oriented Programming(AOP)*フレームワークです。 アプリケーションの複数のポイントにまたがる機能は「横断的関心事」と呼ばれ、これらの横断的関心事は概念的にはアプリケーションのビジネスロジックから分離されています。 ロギング、宣言的トランザクション、セキュリティ、キャッシングなどを含むさまざまな一般的な良い例があります。

OOPのモジュール性の重要な単位はクラスですが、AOPのモジュール性の単位は側面です。 DIは、アプリケーションオブジェクトを相互に分離するのに役立ちますが、AOPは、影響を受けるオブジェクトから横断的な関心事を分離するのに役立ちます。

Spring FrameworkのAOPモジュールは、アスペクト指向のプログラミング実装を提供し、メソッドインターセプターとポイントカットを定義して、分離すべき機能を実装するコードを明確に分離できます。 Spring AOPの概念については、別の章で詳しく説明します。