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 인스턴스를 전달하게 된다. 이 규칙은 개발자들이 자바빈의 속성에 접근하기 위하여 지금까지 사용해온 규칙과 같다.
제목 | 글쓴이 | 날짜 | 조회 |
---|---|---|---|
2003-09-20 |
11982 |
||
2003-09-20 |
11532 |
||
2003-09-20 |
20682 |
||
지구인 |
2010-08-27 |
19467 |
|
지구인 |
2009-09-07 |
13781 |
|
2010-01-29 |
15741 |
||
2004-10-07 |
16832 |
||
2009-05-24 |
4125 |
||
2009-05-23 |
2231 |
||
2009-05-23 |
3732 |
||
2009-05-18 |
14333 |
||
수병아리 |
2009-05-18 |
3093 |
|
2009-04-29 |
1566 |
||
2009-04-27 |
1162 |
||
2009-04-26 |
1319 |
||
2368 [sap] ERP 개념 |
sinanstn |
2009-04-24 |
2864 |
뽀글이예용 |
2009-04-22 |
2923 |
|
2009-04-20 |
2099 |
||
Exception |
2009-04-17 |
2981 |
|
Exception |
2009-04-17 |
2015 |
|
Exception |
2009-04-17 |
2882 |
|
Exception |
2009-04-15 |
2277 |
|
고수고수 |
2009-04-15 |
4703 |
|
2360 [공개소스] HTML TAG 한글사전 |
고수고수 |
2009-04-15 |
4009 |
아시오페아 |
2009-04-01 |
3764 |
|
나키 |
2009-03-31 |
6038 |
|
2357 [sap] [국방산업]성공사례 |
2009-03-30 |
2206 |
|
2009-03-27 |
4585 |