Spring は、Rod Johnson によって作成され、エンタープライズ アプリケーション開発の複雑さを解決するために作成されたオープン ソース フレームワークです。Spring は、基本的な JavaBeans を使用して、以前は EJB でのみ可能であったことを完了できます。
この記事では、Spring フレームワークの機能とモジュールを簡単に紹介します。具体的な使用方法については、推奨コース Java チュートリアル を参照してください。 。
Spring は、Rod Johnson によって作成されたオープンソース フレームワークです。これは、エンタープライズ アプリケーション開発の複雑さを解決するために作成されました。 Spring は基本的な JavaBeans を使用して、以前は EJB でのみ可能であったことを実現します。ただし、Spring の用途はサーバー側の開発に限定されません。単純さ、テスト容易性、疎結合の観点から、あらゆる Java アプリケーション 春の恩恵を受けることができます。
Spring は、軽量の制御反転 (IoC) およびアスペクト指向 (AOP) コンテナー フレームワークです。
軽量 - スプリングはサイズとオーバーヘッドの両方の点で軽量です。完全な Spring フレームワークは、1MB をわずかに超えるサイズの JAR ファイルで配布できます。そして春 必要な処理オーバーヘッドも無視できます。さらに、Spring は非侵入的です。通常、Spring アプリケーション内のオブジェクトは特定の Spring クラスに依存しません。
制御の反転 - Spring は、制御の反転 (IoC) と呼ばれる技術を通じて疎結合を促進します。 IoC が適用されると、オブジェクトが依存する他のオブジェクトが受動的に渡されます。 オブジェクト自体を作成したり、依存オブジェクトを検索したりする代わりに、それを渡します。 IoC は JNDI の反対と考えることができます。オブジェクトがコンテナーから依存関係を探すのではなく、コンテナーは、オブジェクトの要求を待たずに、初期化時にオブジェクトに依存関係を積極的に渡します。
アスペクト指向 - Spring はアスペクト指向プログラミングの豊富なサポートを提供し、アプリケーションのビジネス ロジックをシステム レベルのサービス (監査やトランザクション管理など) から分離することで一貫した開発を可能にします。アプリケーション オブジェクトは、実行すべきこと、つまり完全なビジネス ロジックを実装するだけで、それ以上のものは何も実装しません。彼らは、ロギングやトランザクションのサポートなど、他のシステムレベルの問題については責任を負いません (または認識することさえありません)。
コンテナ - Spring には、アプリケーション オブジェクトの構成とライフサイクルが含まれ、管理されます。これは、構成可能なプロトタイプ (プロトタイプ) に基づいて、各 Bean の作成方法を構成できるという意味でコンテナです。単一のインスタンスを作成することも、必要になるたびに新しいインスタンスを生成することもできます。また、それらが相互にどのように関連しているかについても説明します。ただし、Spring を、大きくて扱いにくく、使いにくい従来の重量 EJB コンテナと混同しないでください。
フレームワーク - Spring は、単純なコンポーネントを構成して、複雑なアプリケーションに結合できます。 Spring では、アプリケーション オブジェクトは、通常は XML ファイルで宣言的に作成されます。
Spring は多くの基本機能 (トランザクション管理、永続化フレームワークの統合など) も提供しており、アプリケーション ロジックの開発はユーザーに任せられます。
これらの Spring 機能をすべて使用すると、よりクリーンで管理しやすく、テストしやすいコードを作成できます。また、Spring のさまざまなモジュールの基本サポートも提供します。
#Spring フレームワークは 7 つの明確に定義されたモジュールで構成されています
全体として、これらのモジュールはエンタープライズ アプリケーションの開発に必要なものをすべて提供します。ただし、アプリケーションを完全に Spring フレームワークに基づいて作成する必要はありません。自分に合ったアプリを自由に選べます モジュールを削除し、残りは無視します。 ご覧のとおり、すべての Spring モジュールはコア コンテナー上に構築されています。コンテナーは、Bean の作成、構成、管理の方法を定義します (詳しくは Spring で説明します)。 アプリケーションを構成するときに、これらのクラスを使用する可能性があります。しかし、開発者としては、コンテナーによって提供されるサービスに影響を与える他のモジュールに興味を持つ可能性が最も高くなります。これらのモジュールは、 AOP や永続性などのアプリケーション サービスを構築するためのフレームワークを提供します。コア コンテナ
これは Spring フレームワークの最も基本的な部分であり、Bean のコンテナ管理を実装するための依存関係注入 (DependencyInjection) 機能を提供します。ここでの最も基本的な概念は BeanFactory であり、Spring アプリケーションの中核となります。 BeanFactory は、IoC を使用してアプリケーションの構成と依存関係の仕様を実際のアプリケーション コードから分離するファクトリ パターンの実装です。アプリケーションコンテキスト(Context)モジュール
コアモジュールのBeanFactoryはSpringをコンテナにし、コンテキストモジュールはフレームワークを作ります。このモジュールは BeanFactory の概念を拡張し、国際言語のサポートを追加します。 (I18N) メッセージング、イベント伝播、および検証のサポート。 さらに、このモジュールは、電子メール、JNDI アクセス、EJB 統合、リモート サービス、スケジューリング サービスなど、多くのエンタープライズ サービスを提供します。テンプレートボックスも付属 Velocity や FreeMarker などのフレームはサポートと統合されています。Spring の AOP モジュール
Spring は、AOP モジュールでアスペクト指向プログラミングの豊富なサポートを提供します。このモジュールは、Spring アプリケーションでアスペクト プログラミングを実装するための基礎です。スプリングなどを確実に確保するため、 AOP フレームワークの相互運用性、Spring の AOP サポートは、AOP Alliance によって定義された API に基づいています。 AOP Alliance はオープン ソース プロジェクトであり、その目標は、共通のインターフェイスとコンポーネントのセットを定義することによって、AOP の使用と、異なる AOP 実装間の相互運用性を促進することです。 AOP Alliance について詳しくは、AOP Alliance のサイトにアクセスしてください。
Spring の AOP モジュールは、Spring にメタデータ プログラミングも導入します。 Spring のメタデータ サポートを使用すると、ソース コードに注釈を追加して、どこでどのように Spring に指示することができます。 アスペクト機能の適用方法。
JDBC 抽象化と DAO モジュール
JDBC を使用すると、接続の取得、ステートメントの作成、結果セットの処理など、多くのコードの重複が発生することがよくあります。接続を閉じています。 Spring の JDBC および DAO モジュールはこれらの重複コードを抽出します コードを削除することで、データベース アクセス コードをクリーンかつ簡潔に保つことができ、データベース リソースのクローズ失敗によって引き起こされる問題を防ぐことができます。
このモジュールは、複数のデータベース サーバーから提供されるエラー メッセージの上に意味のある例外レイヤーも構築します。暗号化されたプライベート SQL エラー メッセージを解読しようとする必要はもうありません。
さらに、このモジュールは Spring の AOP モジュールも使用して、Spring アプリケーションのオブジェクトにトランザクション管理サービスを提供します。
オブジェクト/リレーショナル マッピング統合モジュール
JDBC を直接使用する代わりにオブジェクト/リレーショナル マッピング ツールを使用したい人のために、Spring は ORM モジュールを提供します。 Spring は独自の ORM ソリューションを実装しようとしません 代わりに、Hibernate、JDO、iBATIS SQL マッピングなど、いくつかの一般的な ORM フレームワークの統合ソリューションを提供します。 Spring のトランザクション管理は、JDBC を含むこれらの ORM フレームワークのそれぞれをサポートします。
Spring の Web モジュール
Web コンテキスト モジュールは、アプリケーション コンテキスト モジュール上に構築され、Web アプリケーションに適したコンテキストを提供します。さらに、このモジュールはサービス指向のサポートも提供します。例
例: ファイル アップロードのマルチパート リクエストの実装また、Spring と他の Web フレームワーク (Struts や WebWork など) の統合も提供します。
Spring の MVC フレームワーク
Spring は、Web アプリケーションを構築するための包括的な MVC フレームワークを提供します。 Spring は Struts などの他の MVC フレームワークと簡単に統合できますが、Spring の MVC フレームワークは IoC を使用して制御ロジックとビジネス オブジェクトを完全に分離します。
また、リクエスト パラメーターをビジネス オブジェクトに宣言的にバインドすることもできます。さらに、Spring の MVC フレームワークは、国際化情報や検証などの Spring の他のサービスも利用できます。
Spring Framework Web ページのコード化けの問題
Java Web プロジェクトを実行しているときに、コード化けの問題が頻繁に発生します。解決策は異なります。単純なものもあれば、複雑なものもあります。 ; Spring Frameworkを追加すると別になりますが、 Spring フレームワークに付属する CharacterEncodingFilter を使用できます。これは作業負荷を大幅に軽減し、シンプルで便利で理解しやすいものです。
以上がSpringフレームワークとはの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。