주간 베스트 월간 베스트 3개월 베스트 베스트 게시물
꽃배달 한국, 중국 전지역배송

spring Ioc(3)--Setter Injection

Exception | 2009.04.17 22:00:06 댓글: 0 조회: 2881 추천: 0
분류웹 프로그래밍 https://life.moyiza.kr/itstudy/1759402

Setter Injection

Setter Injection
클래스사이의 의존관계를 연결시키기 위하여 setter 메써드를 이용하는 방법을 말한다.
UserServiceImpl.java
package net.javajigi.user.service;

.... 중간 생략....

public class UserServiceImpl implements UserService {
 private UserDAO userDAO;

 public void setUserDAO(UserDAO newUserDAO) {
  this.userDAO = newUserDAO;
 }

 public int addUser(User user) throws ExistedUserException {
  if (userDAO.existedUser(user.getUserId())) {
   throw new ExistedUserException(context.getMessage(
     "user.existed.exception",
     new Object[] { user.getUserId() }, null));
  }

  int result = userDAO.insert(user);

  return result;
 }

    .... 중간 생략....
}

 UserServiceImpl 보면 퍼시스턴스 계층과의 통신을 위하여 UserDAO인터페이스와 의존관계가 형성되는 것을 확인할 있다. UserServiceImpl 소스코드를 보면 UserDAO 구현 클래스에 대한 정보와 인스턴스가 생성되는 곳은 어느 곳에도 보이지 않는다. 그러나 UserServiceImpl 클래스는 UserDAO 인스턴스가 존재한다는 가정하에 개발을 진행하고 있다. 이처럼 개발하는 것이 가능한 이유는 Spring 프레임워크의 설정파일에 있다.

           
applicationContext.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN"
    "http://www.springframework.org/dtd/spring-beans.dtd">

<beans>
    .... 중간 생략...

 <bean id="userDAO" class="net.javajigi.user.dao.MySQLUserDAO"/>

 <bean id="userService" class="net.javajigi.user.service.UserServiceImpl">
  <property name="userDAO">
   <ref local="userDAO"/>
  </property>
 </bean>
</beans>

사용자 관리 프로젝트의 비즈니스 계층과 퍼시스턴스 계층의 구현을 담당하고 있는 클래스에 대한 생성과 의존관계를 관리하는 Spring 프레임워크 설정파일의 일부분이다. Spring 프레임워크는 설정파일에서 <bean/> 엘리먼트를 이용하여 하나의 빈을 생성하게 된다. 이렇게 생성된 빈은
applicationContext.xml "userService"에서 있는 것처럼 다른 빈과 의존 관계를 형성하는 것이 가능하다. 이렇게 의존관계가 형성될 setter 메써드를 이용하는 것을 Setter Injection이라고 한다.<property/> 엘리먼트 이름이 userDAO라면 UserServiceImpl 클래스의 setUserDAO() 메써드를 통하여 MySQLUserDAO 인스턴스를 전달하게 된다. 규칙은 개발자들이 자바빈의 속성에 접근하기 위하여 지금까지 사용해온 규칙과 같다.


 
추천 (0) 선물 (0명)
IP: ♡.240.♡.191
3,006 개의 글이 있습니다.
제목 글쓴이 날짜 조회
관리자
2003-09-20
11969
관리자
2003-09-20
11526
관리자
2003-09-20
20668
지구인
2010-08-27
19451
지구인
2009-09-07
13771
SOLIDH
2010-01-29
15733
엔죠라이프
2004-10-07
16824
SOLIDH
2009-05-24
4125
SOLIDH
2009-05-23
2231
SOLIDH
2009-05-23
3732
나나
2009-05-18
14332
수병아리
2009-05-18
3092
SOLIDH
2009-04-29
1566
SOLIDH
2009-04-27
1162
SOLIDH
2009-04-26
1319
sinanstn
2009-04-24
2863
뽀글이예용
2009-04-22
2922
SOLIDH
2009-04-20
2099
Exception
2009-04-17
2981
Exception
2009-04-17
2015
Exception
2009-04-17
2881
Exception
2009-04-15
2277
고수고수
2009-04-15
4702
고수고수
2009-04-15
4008
아시오페아
2009-04-01
3764
나키
2009-03-31
6038
Ora
2009-03-30
2206
Ora
2009-03-27
4584
모이자 모바일