티스토리 뷰

spring

day1 class07 비즈니스 컴포넌트 실습2

일상다반ㅅㅏ 2018. 12. 25. 17:32

이번에는 어노테이션을 사용하지 않고, setter 인젝션으로 의존성 주입을 처리하고 나서 어노테이션으로 변경해본다.

class06과 비슷한 코드가 많으므로 추가적인 부분만 기록했다.


1. UserService 컴포넌트 구조


2. VO 클래스 작성



3. DAO 클래스 작성

- 교재상의 주석에선 회원 등록이라고 적혀있지만 회원 조회하는 메소드만 있다. 추후 로그인용으로 같이 사용되거나 추가 될 부분인듯 하다.



4. Service 인터페이스 작성



5. Service 구현 클래스 작성

- setter 인젝션 실습을 위해 setter 메소드를 생성한다.

1
2
3
4
5
// UserServiceImpl.java
 
public void setUserDAO(UserDAO userDAO) {
    this.userDAO = userDAO;
}
cs


6. UserService 컴포넌트 테스트
- UserServiceImpl와 UsrDAO 클래스를 각각 <bean> 등록한다.
- UserServiceImpl 클래스에서 UserDaO 객체를 의존성 주입하기 위한 <property> 설정을 추가한다.
1
2
3
4
5
6
7
<!-- applicationContext.xml -->
 
<context:component-scan base-package="com.springbook.biz"></context:component-scan>
<bean id="userService" class="com.springbook.biz.user.impl.UserServiceImpl">
    <property name="userDAO" ref="userDAO" />
</bean>
<bean id="userDAO" class="com.springbook.biz.user.impl.UserDAO" />
cs



7. 어노테이션 적용
- 아래와 같이 소스를 수정한다.
1
2
3
4
5
6
7
<!-- applicationContext.xml -->
 
<context:component-scan base-package="com.springbook.biz"></context:component-scan>
<!--<bean id="userService" class="com.springbook.biz.user.impl.UserServiceImpl">
    <property name="userDAO" ref="userDAO" />
</bean>
<bean id="userDAO" class="com.springbook.biz.user.impl.UserDAO" /> -->
cs

1
2
3
4
5
6
7
8
9
10
11
// UserSericeImpl.java
 
@Service("userService")
public class UserServiceImpl implements UserService {
 
    @Autowired
    private UserDAO userDAO;
 
    /*public void setUserDAO(UserDAO userDAO) {
        this.userDAO = userDAO;
    }*/
cs

1
2
3
4
5
// UserDAO.java
 
// DAO
@Repository("userDAO")
public class UserDAO {
cs


'spring' 카테고리의 다른 글

day2 class02 AOP용어 및 기본 설정  (0) 2018.12.28
day2 class01 스프링AOP  (0) 2018.12.26
day1 class06 비즈니스 컴포넌트 실습1  (0) 2018.12.25
day1 class05 어노테이션 기반 설정  (0) 2018.12.22
day1 class04 의존성 주입  (0) 2018.12.22