1。春の原則
内部の最もコアはIOCです。動的噴射により、オブジェクトを作成する必要がなくなり、自動的に生成できます。これは実際にJavaで反射を使用しています。リフレクションは、実際には実行時にオブジェクトを動的に作成および呼び出すことです。 Springは、XMLSpring構成ファイルを使用して、実行時にオブジェクトにオブジェクトを動的に作成し、メソッドを呼び出すことです。
Springには、アスペクト指向のプログラミングである別のコア、AOPがあり、特定のタイプのオブジェクト(つまり、このタイプのオブジェクトの特定のメソッドを呼び出す前後に指定したモジュールを呼び出して、モジュールを拡張する機能を実現できます。これらは、構成クラスを通じて達成されます。
Springの目的:オブジェクト(モジュールとモジュール)間の関係をコードを介して関連性がないようにするため、すべて構成クラスの説明を介して管理されます(Springはこれらの構成に基づいて反射を介してオブジェクトを動的にアセンブします)
覚えておいてください:springはコンテナであり、コンテナ内のオブジェクトのみがこれらのサービスと春までに提供される機能を持っています。
春に使用される最も古典的なデザインパターンは、テンプレートメソッドパターンです。 (ここでは紹介しません。非常に一般的に使用されるデザインパターンです)。春には多くの構成があり、覚えておくのは困難ですが、春の本質は上記の2つのポイントにすぎません。上記の2つのポイントを理解した後、基本的にスプリングをマスターします。
Springaopとioc
1。IOC(逆の反転):制御反転
1。IOC:
概念:コントロールはオブジェクト自体からコンテナに転送されます。コンテナは、構成ファイルに基づいてインスタンスを作成し、各インスタンス間に依存関係を作成します。
コア:Bean Factory;春には、Bean Factoryによって作成されたさまざまなインスタンスはBeanと呼ばれます
2。AOP(アスペクト指向プログラミング):アスペクト指向プログラミング
1.プロキシの2つの方法:
静的プロキシ:
特定のクラスごとにプロキシクラスを作成します。
インターフェイスのプロキシクラスの書き込み。
動的プロキシ:
1つの側面のInvocationHandlerを作成し、JDKリフレクションパッケージでプロキシクラスを借りて、さまざまなインターフェイスの対応するプロキシクラスを動的に生成します。
2。動的プロキシ:
プロキシクラスを書く必要はありません。仮想マシンは、実際のオブジェクトによって実装されたインターフェイスに基づいてクラスを生成します。クラスを通じて動的プロキシをインスタンス化します。動的プロキシをインスタンス化すると、実際のオブジェクトと機器が動的プロキシに注入されます。動的プロキシは、動的プロキシを公開します。クライアントが動的プロキシメソッドを呼び出すと、動的プロキシはクラスの反射に基づいて実際のオブジェクトのメソッドを取得し、機器の呼び出しメソッドを呼び出し、機器の呼び出しメソッドにダイナミックプロキシ、メソッド、およびメソッドパラメーターを渡します。 Invokeメソッドは、メソッドメソッドを想起する前または後に処理を行います。
1。動的プロキシを生成するクラス:
java.lang.refect.Proxy
2.装備は、Invokeメソッドを実装するためにInvocationHandlerインターフェイスを実装する必要があります
3。反射
クラスのリベートとは何ですか?
クラスの説明により、クラスの親クラス、実装されたインターフェイス、内部クラス、コンストラクター、メソッド、および属性を取得できます。コンストラクターに応じてオブジェクトをインスタンス化し、メソッドを呼び起こし、属性値を取得し、属性値を変更できます。クラスの取得方法説明:
クラスCLS = class.class; class cls = object.getClass(); class.forname( "classpath");
方法を取得して呼び起こす方法は?
クラスCLS = class.class; Constructor Cons = cls.getConstructor(new class [] {string.class});オブジェクトobj = cons.newinstance(new object [] {"aaa"});メソッドメソッド= cls.getMethod( "メソッド名"、new class [] {string.class、integer.class}); Method.Invoke(obj、new Object [] {"aa"、new Integer(1)}); 4.春の3つの注入方法は何ですか?
セッター
インタフェース
コンストラクタ
5.スプリングのコアインターフェイスとカーネル構成ファイルは何ですか?
FactoryBean:Factory Beansを主に実装IOC/DI ApplicationContext AC = new filexmlapplicationContext( "ApplicationContext.xml");オブジェクトobj = ac.getbean( "id value");
6。7スプリングフレームワークのモジュール
Pringフレームワークは、7つの明確なモジュールで構成される階層アーキテクチャです。スプリングモジュールは、コアコンテナの上に構築されており、豆の作成、構成、管理方法を定義します。 Springフレームワークを構成する各モジュール(またはコンポーネント)は、単独で存在するか、1つ以上の他のモジュールと組み合わせて実装できます。各モジュールの機能は次のとおりです。
コアコンテナ:コアコンテナは、スプリングフレームワークの基本的な機能を提供します。コアコンテナの主なコンポーネントはBeanFactoryであり、工場パターンの実装です。 BeanFactoryは、コントロールの反転(IOC)モードを使用して、アプリケーションの構成仕様と依存関係を実際のアプリケーションコードから分離します。
スプリングコンテキスト:スプリングコンテキストは、スプリングフレームワークにコンテキスト情報を提供する構成ファイルです。 Springコンテキストには、JNDI、EJB、電子メール、国際化、チェックサムスケジューリング機能などのエンタープライズサービスが含まれます。
Spring AOP:構成管理機能を通じて、Spring AOPモジュールは、アスペクト指向のプログラミング関数をSpringフレームワークに直接統合します。したがって、Spring FrameworkサポートAOPによって管理されたオブジェクトを簡単に作成できます。 Spring AOPモジュールは、Springベースのアプリケーションでオブジェクトにトランザクション管理サービスを提供します。 Spring AOPを使用することにより、EJBコンポーネントに依存せずに宣言的なトランザクション管理をアプリケーションに統合できます。
Spring DAO:JDBC DAO抽象化レイヤーは、異なるデータベースベンダーによってスローされる例外処理とエラーメッセージの管理に使用できる意味のある例外階層を提供します。例外階層により、エラー処理が簡素化され、記述する必要がある例外コードの量(接続の開閉など)が大幅に削減されます。 Spring DAOのJDBC指向の例外は、一般的なDAO例外階層に従います。
Spring Orm:Spring FrameworkにはいくつかのORMフレームワークが挿入されるため、JDO、Hibernate、Ibatis SQLマップなどのORMオブジェクト関係ツールを提供します。これはすべて、Springの一般的なトランザクションおよびDAO例外階層に従います。
Spring Webモジュール:Webコンテキストモジュールは、アプリケーションコンテキストモジュールに基づいて構築され、Webベースのアプリケーションのコンテキストを提供します。したがって、スプリングフレームワークは、ジャカルタストラットとの統合をサポートしています。 Webモジュールは、マルチパートリクエストとドメインオブジェクトへのバインディングリクエストパラメーターの処理作業も簡素化されます。
Spring MVCフレームワーク:MVCフレームワークは、Webアプリケーションを構築するための完全に機能的なMVC実装です。ポリシーインターフェイスを通じて、MVCフレームワークは高度に構成可能になり、MVCはJSP、速度、タイル、ITEXT、POIなどの多数のビューテクノロジーを収容します。
Spring Frameworkの機能は、任意のJ2EEサーバーで使用でき、それらのほとんどは管理されていない環境に適しています。春のコアポイントは、特定のJ2EEサービスに拘束されない再利用可能なビジネスおよびデータアクセスオブジェクトのサポートです。そのようなオブジェクトを、異なるJ2EE環境(WebまたはEJB)、スタンドアロンアプリケーション、テスト環境間で再利用できることは間違いありません。
要約します
上記は、春の作業原則の単純な探求に関するこの記事のすべての内容です。私はそれがすべての人に役立つことを願っています。興味のある友達は引き続きこのサイトを参照できます:
Spring Framework Webプロジェクト実践的なコード共有
スプリングの一般的な構成と分析クラスの説明
springMVCシンプルログイン例のJavaプログラミングの実装
欠点がある場合は、それを指摘するためにメッセージを残してください。このサイトへのご支援をありがとうございました!