개발용
[Spring] DI(의존성 주입) 본문
*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 |