1. 3계층
Spring은 3계층으로 구분 할 수 있다. 사용자 요청을 받아 흐름을 제어하는 Presentation Layer, 비즈니스 로직을 담당하는Business Layer, 데이터 베이스에 접근하여 데이터 베이스를 다루는 Persistence Layer(Data Access Layer)로 계층을 분리 할 수 있다.
UserHistoryDao 회원의 이력을 추가, 삭제, 수정 등 비즈니스 로직을 수행하는 역할이 필요하다. Persistence Layer인 UserDao는 단순히 DB테이블의 정보를 CRUD(Creadt, Remove, Update, Delete)하는 기능만 수행하기에 비즈니스 수행할 수 없다. 그래서 Presentation Layer인 RegisterController에게 UserHistoryDao를 주입해서 사용했다. 하지만 Presentation Layer는 흐름을 제어하는 계층이지 비즈니스 로직을 관리하는 계층이 아니다. 그래서 비즈니스 로직을 담당하는 Business Layer를 새로 만들어 관심을 분리시킨다.
2.계층의 분리
Business Layer를 분리 한 후에는 register, get, add, change하는 비즈니스 로직을 따로 떼어내어 각 계층별로 업무를 분담한다. 서로의 영역을 분담함으로써 느슨한 결합을 한다. 이를 통해 코드의 변경이 유리해진다. 그리고 Business Layer에서는 Tx(트랜잭션)을 수행한다. Presentation Layer부터 Persistence Layer까지 순서대로 @Contoller, @Service, @Repository 어노테이션을 사용한다. 세 어노테이션들은 @Component 어노테이션의 일부이기 때문에 <component-scan>의 대상이 된다.
출처:스프링의 정석 : 남궁성과 끝까지 간다(패스트 캠퍼스 강좌)
'Spring > SpringMVC' 카테고리의 다른 글
[SpringMVC] @RequestParam과 @ModelAttribute (0) | 2022.02.26 |
---|---|
[SpringMVC] rediect와 forward (0) | 2022.02.26 |
[SpringMVC] 요청과 응답 (0) | 2022.02.25 |
[SpringMVC] 데이터 변환과 검증 (0) | 2022.02.24 |
[Spring MVC] MVC 패턴 (0) | 2022.02.23 |