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

spring Ioc(3)--Constructor Injection

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

Constructor Injection

Setter Injection setter 메써드를 이용해서 의존관계를 연결시킨다는 것을 알았다면 Constructor Injection 생성자를 이용하여 의존관계를 연결시킨다는 것은 설명하지 않아도 것이다.Setter Injection의 예제를 Constructor Injection으로 변경해보면 다음과 같다.

UserServiceImpl.java


package net.javajigi.user.service;

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

public class UserServiceImpl implements UserService {
 private UserDAO userDAO;

               public UserServiceImpl(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.java 보면 setUserDAO() 메써드를 통하여 전달되던 UserDAO 인스턴스를 생성자를 통하여 전달하고 있는 것을 확인할 있다. UserServiceImpl.java 에서 작성한 예제 소스를 Constructor Injection으로 빈의 의존관계를 연결시키기 위하여 다음과 같이 작성해야 한다.

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">
                     <constructor-arg>
                          <ref local="userDAO" />
                     </constructor-arg>
 </bean>
</beans>

이와 같이 Constructor Injection 생성자를 통하여 클래스사이의 의존관계를 연결시키는 것을 의미한다.

추천 (0) 선물 (0명)
IP: ♡.240.♡.191
3,006 개의 글이 있습니다.
제목 글쓴이 날짜 조회
관리자
2003-09-20
12021
관리자
2003-09-20
11567
관리자
2003-09-20
20724
지구인
2010-08-27
19500
지구인
2009-09-07
13815
SOLIDH
2010-01-29
15784
엔죠라이프
2004-10-07
16864
SOLIDH
2009-05-24
4125
SOLIDH
2009-05-23
2232
SOLIDH
2009-05-23
3732
나나
2009-05-18
14333
수병아리
2009-05-18
3093
SOLIDH
2009-04-29
1566
SOLIDH
2009-04-27
1163
SOLIDH
2009-04-26
1319
sinanstn
2009-04-24
2864
뽀글이예용
2009-04-22
2924
SOLIDH
2009-04-20
2099
Exception
2009-04-17
2981
Exception
2009-04-17
2016
Exception
2009-04-17
2882
Exception
2009-04-15
2277
고수고수
2009-04-15
4703
고수고수
2009-04-15
4009
아시오페아
2009-04-01
3764
나키
2009-03-31
6039
Ora
2009-03-30
2206
Ora
2009-03-27
4585
모이자 모바일