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(); } }
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; } }
<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>
コンストラクター メソッド インジェクション
名前が示すように、コンストラクター メソッド インジェクションは、以下に示すように、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); } }
<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>
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>
以上がSpring の依存関係注入の 3 つの方法とは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。