본문 바로가기
Spring 프레임워크/예제

예제 06 의존 주입 (Setter Injection)

by Hwanii_ 2023. 8. 1.
728x90

1.

TV 인터페이스

 

 

2.

RemoteControl 인터페이스

 

 

3.

각 인터페이스를 구현한 클래스

 

 

 

 

4.

TV 인터페이스를 구현한 LgTV 클래스는,

RemoteControl 인터페이스의 참조변수 remoteControl를 멤버 (변수) 로 두고 있다.

 

즉, 둘은 의존 관계 이며,

의존 주입을 setter 을 통해 주입 시키기 위해, setter 메서드를 작성 했다.

 

5.

applicationContext.xml

 

프로퍼티는 인터페이스 타입의 멤버변수인 remoteControl 이다. setter의 인자가 인터페이스 RemoteControl 를 구현한 lgRC 이다.

 

<bean class = "패키지명.자료형" id = "참조변수명">

 

            <property name = "프로퍼티명 (멤버변수명)" ref = "인자의값" />

            <property name = "프로퍼티명 (멤버변수명)" value = "인자의값" />

 

</bean>

 

<bean class = "패키지명.자료형" id = "참조변수명" />

 

의 코드를 확인 할 수 있다.

 

setter로 의존주입을 하기 위해서는,

 

.xml 파일 내부에서, <property> 태그를 사용한것이 <constructor> 과의 차이점 이다.

 

 

 

위의 name 속성의 값이 setter 메서드의 이름과 동일 해야 한다.

 

예를들어, setter 메서드의 메서드명이,

setHwan 이면,

<property name = "hwan" /> 이어야 한다는 말이다.

 

그리고 setter에 인자로 의존하고 있는 객체가 들어가야 하기 때문에,

 

ref = "참조변수명 (객체명)" 이라고 명시를 해줘야 한다.

 

이 ref == 참조변수명 == 객체명 은,

 

<bean class = "패키지명.자료형" id = "참조변수명" /> 으로 작성 되어 있을텐데,

 

id == ref == 참조변수명 == 객체명 이다.

 

6.

 

[ 참고 ]

 

id == 참조변수명 == 객체명

 

은 객체를 (주체를) 주체로 사용할일이 있으면, 작성 하면 된다.

 

( 일단 모르겠으면, 에라모르겠다 하고 그냥 다 작성 하기.. )

반응형