# 웹 개발/프레임워크

spring injection 방법

dev-jjong 2013. 6. 8. 14:32

<!-- 1. constructor injection  -->

<bean name="빈이름" class="객체를 생성하려는 빈의 실제 주소">

<!--  생성자가 있는것을 정의해줘야함  -->

<constructor-arg>

<ref bean="참조 할 DAO빈의 이름"/>  <!--참조해야한다. 이게바로 (생성자 injection)  -->

</constructor-arg>

</bean>

<bean name="참조 당하는 DAO빈의 이름" class="실제 경로"/>


* class 파일에서의 코딩 *

public class 클래스명 {

private 참조하려는class의 부모 interface형식 변수명;

//생성자

public 클래스명(참조하려는class의 부모 interface형식 변수명) { 

//xml에 의해서 참조하려는class가 변수명의 값으로 들어오게된다.

this.변수명변수명;

}

}


<!-- 2. setter injection  -->

<!--방법1. 일반적인 property 설정 방식  -->

<!-- (외부에서 만들어서 참조) -->

<bean name="my" class="pack.MyProcess">

// property = setter를 부르는 것이다. 죽 setNai()에 22를 밀어넣어주는 것이다.

<property name="nai" value="22"/>

// showname은 객체이기 때문에 값을 주기 위해서 먼저 맨아래서 객체를 생성해준다. 

<property name="showName" ref="showName"/>  //밑에 생성한 showName을 ref(참조) 한다. 

</bean>

<bean name="showName" class="pack.ShowName"/>

<!-- (직접 프로퍼티안에서 빈을 생성)  -->

<!-- 

<bean name="my" class="pack.MyProcess">

<property name="nai" value="22"/>

<property name="showName">

<bean class="pack.ShowName"/>

</property>

</bean>

-->

 

<!--방법2 : XML namespace를 이용한 property 설정  -->

<beans xmlns= xmlns:p="http://www.springframework.org/schema/p" 에 추가한다.


<bean name="my" class="pack.MyProcess" 

p:nai="23" p:showName-ref="showName"/>  <!--위에서 선언해 줬다. p: 사용할 수 있도록...  -->

<bean name="showName" class="pack.ShowName"/>



* class 파일에서의 코딩 *

public class 클래스명 {

private 참조하려는class의 부모 interface형식 변수명;

//setter

public void setter명(참조하려는class의 부모 interface형식 변수명) { 

//xml에 의해서 참조하려는class가 변수명의 값으로 들어오게된다.

this.변수명변수명;

}

}