ホームページ  >  記事  >  Java  >  Spring の 2 つの注入方法 (セットと構築) の詳細な例

Spring の 2 つの注入方法 (セットと構築) の詳細な例

PHP中文网
PHP中文网オリジナル
2017-06-22 14:49:351926ブラウズ

Springコントロールフリッピングにおける依存性注入方法

依存性注入とは、オブジェクト間の関係の制御がアプリケーションコードから外部コンテナに移されることを意味します。 Spring フレームワークは主に、セット インジェクションとコンストラクター インジェクションという 2 つの依存性注入メソッドを提供します。

1:セットインジェクションとは、インジェクションを受けるクラスにインジェクションする型のsetメソッドを定義し、パラメータにインジェクションが必要な要素を定義することを指します。 Set インジェクションは Bean プロパティを直接アセンブルする方法ですが、Set インジェクションの欠点の 1 つは、すべての変数プロパティが set メソッドを通じてアクセスできることを前提としており、どのプロパティが必須でどのプロパティがオプションであるかを明確に示すことができないことです。

2: コンストラクターインジェクションとは、インジェクションを受けるクラスにコンストラクターメソッドを定義し、そのコンストラクターメソッド内にインジェクションが必要なパラメーターを定義することです。コンストラクター インジェクションの利点は、依存関係がコンストラクターを通じて強制されることです。

使用方法は 2 つあります:

1 つ: Myeclipse で新しいプロジェクトを作成します (著者は Myeclipse10 バージョンを使用しています) (Java プロジェクトまたは Web プロジェクトを使用できます)

2 つ: そう-プロジェクト - MyEclipse - Add Spring Capabilities (Spring サポートの追加) をクリックし、バージョン 3.0 を選択してコア クラス ライブラリへの参照を追加し、[次​​へ] をクリックします

3: 新しい Spring Bean 構成ファイルを作成して配置することを選択しますプロジェクトの src ディレクトリ内。

4: [次へ] をクリックし、Hibernate 構成ページを指定して直接デフォルトにし、[完了] をクリックします。

5: 新しいクラス HelloWorld.java

package com.xiami.spring;

public class HelloWorld {

	private String str;

	/**
	 * 默认构造方法
	 */
	public HelloWorld() {
	}

	/**
	 * 用来进行构造注入的构造方法
	 * 
	 * @param str
	 */
	public HelloWorld(String str) {
		this.str = str;
	}

	/**
	 * 用来进行Set注入的方法
	 * @param str
	 */
	public void setStr(String str) {
		this.str = str;
	}

	/**
	 * 输出字符串的方法
	 */
	public void sayHello() {
		System.out.println(str);
	}
}


6: 新しいテストクラスを作成する Test.java

package com.xiami.spring;

import org.springframework.beans.factory.BeanFactory;
import org.springframework.beans.factory.xml.XmlBeanFactory;
import org.springframework.core.io.ClassPathResource;

public class Test {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		//载入spring配置文件
		BeanFactory bFactory = new XmlBeanFactory(new ClassPathResource("applicationContext.xml"));
		HelloWorld helloWorld = (HelloWorld) bFactory.getBean("helloService");
		helloWorld.sayHello();
	}

}

7: 現時点でのプロジェクト構成は以下の通り

8: applicationContext.xml ファイルを開いて Bean 設定を追加します

Bean を追加するには次の 2 つの方法があります:

1: Set注入メソッドを使用したBeanクラスの設定

applicationContext.xml を右クリック 編集インターフェイス - Spring - 新しい Bean Bean ウィザード ウィンドウを開き、Bean ID を入力します (カスタムの名前付けは、Test.java の getBean("???") に対応します。Bean クラス HelloWorld を選択します[プロパティ] タブをクリックして、この Bean の新しい属性を作成します。

9: HelloWorld.java の属性名に対応する名前を入力し、Spring Type の値を選択して、任意の値を入力します。

Ten: Bean を追加した後、Test.java を実行してテストすると、hello world

文字列が に挿入されていることがわかります。

<?xml version="1.0" encoding="UTF-8"?>
<beans
	xmlns="http://www.springframework.org/schema/beans"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xmlns:p="http://www.springframework.org/schema/p"
	xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">

	
	<!-- 使用Set方式注入 -->
	<!-- 
	<span style="color:#ff0000;"><bean id="helloService" class="com.xiami.spring.HelloWorld"
		abstract="false" lazy-init="default" autowire="default">
		<property name="str">
			<value type="java.lang.String">hello world</value>
		</property>
	</bean></span>
	 -->
	 
	 <!-- 使用构造方法方式注入 
	 <bean id="helloService" class="com.xiami.spring.HelloWorld"
	 	abstract="false" lazy-init="default" autowire="default">
	 	<constructor-arg>
	 		<value type="java.lang.String">构造方法注入方式</value>
	 	</constructor-arg>
	 </bean>
	 -->
	 
	 </beans>

2: コンストラクターインジェクションを使用したBeanクラスの構成

上記のSetメソッドのBeanウィザードウィンドウで、「プロパティ」タブを選択せず​​に、「コンストラクター引数」タブに変更して追加します。新しい構築パラメーター。インデックスと Java クラスを入力する必要はありません。

イレブン: コンストラクター Bean を追加するときは、最初にコメント化するか削除する必要があります。同じ ID を持つそれ以上の Bean は許可されません。

以上がSpring の 2 つの注入方法 (セットと構築) の詳細な例の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。