Notice
Recent Posts
Recent Comments
Link
«   2025/07   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
Tags
more
Archives
Today
Total
관리 메뉴

개발용

[Spring] DI(의존성 주입) 본문

개발/WEB

[Spring] DI(의존성 주입)

DeP 2017. 1. 24. 14:59

*DI : 모듈간의 의존관계를 모듈의 외부(컨테이너)에서 주입시켜주는 기능(IoC의 한 종류)

 

Ex) applicationCxt.xml

* property로 set할 때는 반드시 setter메소드 필요

cf) setter 메소드는 스프링 컨테이너가 자동으로 호출하며, 호출하는 시점은 <bean>객체 생성직후 -> 반드시 기본 생성자::bean 필요

 

 

::property

<bean id="[REF_KEY]" class="[CLASS_PATH]">

<property name="[CLASS_VAR_NAME]" value="[VALUE]"/>

//반드시 해당 클래스에 존재하는 CLASS_VAR_NAME과 일치해야 함

</bean>

 

 

<bean id="[REF_KEY]" class="[CLASS_PATH]">

<property name="[CLASS_VAR_NAME]" value="[VALUE]"/>

 

<property name="[CLASS_VAR_NAME]">

<list>        //CLASS의 멤버가 기본 자료형 배열일 때

<value>[VALUE]</value>

<value>[VALUE]</value>

</list>

</property>

 

<property name="CLASS_VAR_NAME">

<ref bean="[REF_KEY]"></ref>        //CLASS의 멤버가 기본 자료형이 아닌 객체일 때

</property>

</bean>

 

 

::constructor-arg

<bean id="[REF_KEY]" class="[CLASS_PATH]">

<constructor-arg ref="[REF_KEY]"/>        //constructor-arg사용 시 setter메소드 필요X

 

<constructor-arg>

<ref bean="[REF_KEY]">

</constructor-arg>

 

<constructor-arg>

<value>[VALUE]</value>

</constructor-arg>

 

//이 때 반드시 CLASS에는 <consructor-arg>개수 만큼의 매개변수를 가지는 생성자 소스코드가 존재해야 함

</bean>

 

 

 

::(name space)p

<bean id="tv" class="polymorphism.SamsungTV" p:speaker-ref="speaker" p:price="2700000"/>    //property 약자

 

 

 

'개발 > WEB' 카테고리의 다른 글

[Spring] AOP  (0) 2017.01.24
[Spring] 어노테이션 기반 설정  (0) 2017.01.24
[Spring] IoC  (0) 2017.01.24
Bean factory  (0) 2017.01.24