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은 생성자를 통하여 클래스사이의 의존관계를 연결시키는 것을 의미한다.
제목 | 글쓴이 | 날짜 | 조회 |
---|---|---|---|
2003-09-20 |
12021 |
||
2003-09-20 |
11567 |
||
2003-09-20 |
20724 |
||
지구인 |
2010-08-27 |
19500 |
|
지구인 |
2009-09-07 |
13815 |
|
2010-01-29 |
15784 |
||
2004-10-07 |
16864 |
||
2009-05-24 |
4125 |
||
2009-05-23 |
2232 |
||
2009-05-23 |
3732 |
||
2009-05-18 |
14333 |
||
수병아리 |
2009-05-18 |
3093 |
|
2009-04-29 |
1566 |
||
2009-04-27 |
1163 |
||
2009-04-26 |
1319 |
||
2368 [sap] ERP 개념 |
sinanstn |
2009-04-24 |
2864 |
뽀글이예용 |
2009-04-22 |
2924 |
|
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 |
|
2360 [공개소스] HTML TAG 한글사전 |
고수고수 |
2009-04-15 |
4009 |
아시오페아 |
2009-04-01 |
3764 |
|
나키 |
2009-03-31 |
6039 |
|
2357 [sap] [국방산업]성공사례 |
2009-03-30 |
2206 |
|
2009-03-27 |
4585 |