注入IoC/DI-制御の逆転/依存性(2)
スプリング注入依存性による
@Autowiredによる属性の注入
[コード]
運転手は総合ショッピングモールで車を買うように要求した.
総合ショッピングモールで自動車を生産する.
総合商城はタイヤを生産する.
総合商城は自動車にタイヤを入れる.
総合ショッピングモールは運転手に車を渡した.
<?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:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.1.xsd">
<context:annotation-config />
<bean id="tire" class="exSpringAutowired.KoreaTire"></bean>
<bean id="americaTire" class="exSpringAutowired.AmericaTire"></bean>
<bean id="car" class="exSpringAutowired.Car"></bean>
</beans>
package exSpringAutowired;
import org.springframework.beans.factory.annotation.Autowired;
public class Car {
@Autowired
Tire tire;
public String getTireBrand() {
return "장착된 타이어: " + tire.getBrand());
}
}
同じタイプのクラスが複数実装されている場合、beanタグのidを使用してマッチングします.
すなわち,@Autowiredはtypeとidのtypeよりも優先的に実現される.
整理機構
typeを実装する空はありますか?
例:2
No:No一致beanエラー
文彬は一人ですか.
例:オブジェクトに一意の空を割り当てる
No:idに一致する空がありますか?(たとえば、オブジェクトに空を割り当てる/いいえ:no unique beanエラー)
DI仕上げ
依存関係はnewに簡略化されているが,実際には変数に値を付与するすべての場所に依存関係がある.
すなわち,代入演算子(=)で変数に値を割り当てると依存関係が生じる.
変数が領域変数、属性、または指定した値がテキストまたはオブジェクトであるかにかかわらず、依存関係が発生します.
依存オブジェクトは、内部でも外部でも使用できます.
DIは外部依存オブジェクトの注入を意味する.
依存オブジェクトを実装および配置する際には、SOLIDと凝集度の向上、結合度の低下の基本原則に従う必要があります.
プロジェクトの実装とメンテナンスを容易にします.
Reference
この問題について(注入IoC/DI-制御の逆転/依存性(2)), 我々は、より多くの情報をここで見つけました https://velog.io/@ha0kim/IoCDI-제어의-역전의존성-주입2テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol