사용자관리프로젝트(컨트롤러,서비스,DAO,도메인모델)란?
사용자관리 프로젝트 아키텍쳐
- 계층화(역할별로 나누어서 개발)
3계층과 모든계층에 사용되는 도메인 모델(VO,DTO) 클래스로 구성되어있다.
3계층
-프리젠테이션계층
-서비스계층
-데이터액세스계층
각각계층은 독립적으로 구분에서 구현한다.(각각의 기능과 역할이 다름)
프리젠테이션계층(쉽게말해 컨트롤러)
- 웹클라이언트의 요청 및 응답을 처리한다.
- 상위계층(서비스,데이터액세스계층)에서 발생하는 익셉션 처리한다.
- 최종 UI에서 표현해야 할 도메인 모델 사용한다.
- 최종 UI에서 입력한 데이터에 대한 유효성 검증기능을 제공한다.(타입확인등)
- 비지니스로직과 UI분리한다.(컨트롤러)
- @Controller 어노테이션으로 표현한다.
서비스계층(비지니스 로직)
- 복잡한 처리 구현한다.
- 트랜잭션처리한다.(DB 커밋 및 롤백)
- 프리젠테이션계층과 데이터액세스 계층 사이를 연결하는 역할이다.(직접통신하지않아 유연성증가)
- 다른 계층들과 통신하기 위한 인터페이스를 제공한다.
- Service 인터페이스와 @Service 어노테이션을 사용하여 작성된 Service 구현 클래스이다.
데이터액세스계층
- DBMS연동하여 데이터엑세스하는 로직을 담당한다.
- 데이터를 조회 등록 수정 삭제한다.(CRUD)
- ORM 프레임워크(Mybatis,Hibernate)를 주로 사용하는 계층이다.
- DAO인터페이스 @Repository 어노테이션을 사용하여 작성된 DAO 구현 클래스이다.
도메인모델클래스
- VO,DTO객체에 해당한다.
- 3개의 계층에 걸쳐 사용한다.
- private 멤버변수있고, getter,setter로 사용한다.
사용자 관리 프로젝트 클래스 설계
테이블 생성
컨트롤러 ->
서비스(인터페이스) ->
서비스임플(비지니스로직) ->
DAO(인터페이스) ->
DAOImpl(db연결 jdbc사용)
UserVO(전구역에걸쳐사용)
UserController
- UI계층과 서비스 계층을 연결하는 역할이다.
- JSP에서 UserController를 통해서 서비스 계층의 UserService를 연결한다.(@autowried사용)
- UserService 를IOC가 주입해준다.
UserService
- 서비스 계층에 속한 상위 인터페이스이다.
UserServiceImpl
- @Service사용 -> @Component과 같음
- UserService를 구현한클래스이다.
- 복잡한 업무 로직이 있을 경우에는 이 클래스에서 업무 로직을 구현한다.
- 데이터액세스 계층의 UserDao 인터페이스를 구현한 객체를 IoC컨테이너가 주입해준다.(@autowried사용)
UserDao
- 데이터 액세스 계층에 속한 상위 인터페이스
UserDaoImplJDBC
- @Repository -> @Component역할과 같다.(특별히 데이터엑세스 레파지토리라는 뜻)
- UserDao 인터페이스를 구현한 클래스로 이클래스에서는 데이터 액세스 로직을 구현한다.
- SpringJDBC를 사용하는 경우 DataSource를 IoC컨테이가 주입해준다.
- MyBatis를 사용하는경우에는 SqlSession을 IoC컨테이너가 주입해준다.
'개발 소발 > 개발 Spring' 카테고리의 다른 글
jdbc환경설정(mysql)이란? (0) | 2017.11.21 |
---|---|
데이터엑세스개념(jdbc,springjdbc)이란? (0) | 2017.11.21 |
Bean등록 및 메타정보구성이란? (0) | 2017.11.21 |
bean,properties설정이란? (0) | 2017.11.20 |
Junit,Spring-Test란?(의존성예제) (0) | 2017.11.20 |