웹 어플리케이션 개발할 때 가장 많이 사용되는 구조로 컨트롤러-서비스-DAO로 이어지는 구성이다.
모델 | 데이터베이스 테이블과 관련된 클래스가 위치한다. CRUD의 기본단위로 사용되며, 서비스-DAO 간 데이터를 주고 받기 위한 객체로도 사용된다. |
DAO | Data Access Object의 약자로 데이터베이스 테이블에 대한 CRUD 기능을 정의한다. 데이터 입력이나 수정, 조회 시 데이터 타입으로 모델을 사용한다.
Service에 의해 호출되어 쿼리를 담당하는 SqlMapClienTemplate 객체를 Spring으로부터 주입받아서, SQL의 CRUD에 해당하는 insert, select, update, delete 메소드를 정의한다. |
서비스 | 컨트롤러를 통해서 전달받은 사용자의 요청을 구현한다. DB연산이 필요한 경우 DAO를 이용한다.
Controller에 의해 호출되어 실제 비즈니스 로직과 트랜잭션을 처리하고, DB CRUD를 담당하는 DAO 객체를 Spring으로부터 주입 받아서, DAO에 DB CRUD처리를 위임하고 처리결과를 Controller에게 반환한다. |
컨트롤러 | 사용자의 웹 요청을 받아 서비스나 DAO에 전달하고, 결과를 뷰에 전달한다. |