java ビデオ)
これら 3 種類の依存性インジェクションが Spring でどのように機能するかを紹介します。 まず、次のクラスが必要です。 Interface Login.javaインターフェイス実装クラス LoginImpl.javaA 処理クラス LoginAction.java次のようなテスト クラス TestMain.javaLoginImpl.java もあります。
package com.spring.test.di; public class LoginImpl implements Login{ public String getName(){ return "fengyun"; } } TestMain.java package com.spring.test.di; import org.springframework.context.ApplicationContext; import org.springframework.context.support.FileSystemXmlApplicationContext; public class TestMain { /** * @param args */ public static void main(String[] args) {// 得到ApplicationContext对象 ApplicationContext ctx = new FileSystemXmlApplicationContext( "applicationContext.xml"); // 得到Bean LoginAction loginAction = (LoginAction) ctx.getBean("loginAction"); loginAction.execute(); } }LoginAction.java は、使用される注入方法によって若干異なります。 インジェクション メソッドに従って LoginAction.java クラスを見てみましょう。
Setter メソッド インジェクション:
package com.spring.test.di; public class LoginAction { private Login login; public void execute() { String name = login.getName(); System.out.print("My Name Is " + name); } /** * @return the login */ public Logic getLogin() { return login; } /** * @param login * the login to set */ public void setLogin(Login login) { this.login = login; } }は、ログイン タイプの変数 login を定義します。ここでは Spring の依存関係注入メソッドを使用しているため、LoginAction はログインをインスタンス化せず、対応するセッター/ゲッター メソッドのみをインスタンス化します。 applicationContext.xml 構成ファイルは次のとおりです。
<bean id="login" class="com.spring.test.di.LoginImpl"/> <bean id="loginAction" class="com.spring.test.di.LoginAction"> <property name="login" ref="login"></property> </bean>これで testMain.java を実行できるようになり、My Name Is fengyun がコンソールに表示されることがわかります。 OK、これは Spring の setter メソッドの注入です。
コンストラクター メソッド インジェクション
名前が示すように、コンストラクター メソッド インジェクションは、以下に示すように、DI の目的を達成するために LoginAction のコンストラクター メソッドに依存することを意味します。LoginAction.java package com.spring.test.di; public class LoginAction { private Login login; public LoginAction(Login login) { this.login = login; } public void execute() { String name = login.getName(); System.out.print("My Name Is " + name); } }ここでは、LoginAction コンストラクターを追加しましたapplicationContext.xml 構成ファイルは次のとおりです:
<bean id="login" class="com.spring.test.di.LoginImpl"/> <bean id="loginAction" class="com.spring.test.di.LoginAction"> <constructorarg index="0" ref="login"></constructorarg> </bean>構成にはconstructorargを使用します。index 属性は、コンストラクター内のパラメーターの順序。複数のパラメーターがある場合は、0,1... これで testMain.java を実行できるようになり、結果は Setter を使用した場合とまったく同じになります。注入する方法。 注意すべき点は、コンストラクターに複数のパラメーターがある場合 (パラメーター 1、パラメーター 2、パラメーター 2 はパラメーター 1 に依存するなど)、この場合はコンストラクターの順序に注意する必要があります。 、パラメータは 1 がパラメータ 2 の前に配置される必要があります。 一般的には使用しないインターフェイス インジェクションについて話を続けましょう。例として LoginAction を取り上げます。次のように変更しました:
LoginAction.java package com.spring.test.di; public class LoginAction { private Logic login; public void execute() { try { Object obj = Class.forName("com.spring.test.di.LoginImpl") .newInstance(); login = (Login) obj; String name = login.getName(); System.out.print("My Name Is " + name); } catch (Exception e) { e.printStackTrace(); } } }構成ファイル:
<bean id="logic" class="com.spring.test.di.LoginImpl"/> <bean id="loginAction" class="com.spring.test.di.LoginAction"> </bean>現場で最も一般的に使用される 2 つの注入メソッドは、セッターとコンストラクターです。 推奨チュートリアル:
以上がSpring の依存関係注入の 3 つの方法とは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

この記事では、Javaプロジェクト管理、自動化の構築、依存関係の解像度にMavenとGradleを使用して、アプローチと最適化戦略を比較して説明します。

この記事では、MavenやGradleなどのツールを使用して、適切なバージョン化と依存関係管理を使用して、カスタムJavaライブラリ(JARファイル)の作成と使用について説明します。

この記事では、カフェインとグアバキャッシュを使用してJavaでマルチレベルキャッシュを実装してアプリケーションのパフォーマンスを向上させています。セットアップ、統合、パフォーマンスの利点をカバーし、構成と立ち退きポリシー管理Best Pra

この記事では、キャッシュや怠zyなロードなどの高度な機能を備えたオブジェクトリレーショナルマッピングにJPAを使用することについて説明します。潜在的な落とし穴を強調しながら、パフォーマンスを最適化するためのセットアップ、エンティティマッピング、およびベストプラクティスをカバーしています。[159文字]

Javaのクラスロードには、ブートストラップ、拡張機能、およびアプリケーションクラスローダーを備えた階層システムを使用して、クラスの読み込み、リンク、および初期化が含まれます。親の委任モデルは、コアクラスが最初にロードされ、カスタムクラスのLOAに影響を与えることを保証します


ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

MantisBT
Mantis は、製品の欠陥追跡を支援するために設計された、導入が簡単な Web ベースの欠陥追跡ツールです。 PHP、MySQL、Web サーバーが必要です。デモおよびホスティング サービスをチェックしてください。

メモ帳++7.3.1
使いやすく無料のコードエディター

MinGW - Minimalist GNU for Windows
このプロジェクトは osdn.net/projects/mingw に移行中です。引き続きそこでフォローしていただけます。 MinGW: GNU Compiler Collection (GCC) のネイティブ Windows ポートであり、ネイティブ Windows アプリケーションを構築するための自由に配布可能なインポート ライブラリとヘッダー ファイルであり、C99 機能をサポートする MSVC ランタイムの拡張機能が含まれています。すべての MinGW ソフトウェアは 64 ビット Windows プラットフォームで実行できます。

PhpStorm Mac バージョン
最新(2018.2.1)のプロフェッショナル向けPHP統合開発ツール

SublimeText3 中国語版
中国語版、とても使いやすい
