[스프링 부트] 6. 레이어 설계

lhs's avatar
Nov 17, 2024
[스프링 부트] 6. 레이어 설계
notion image

1. BoardController

@Controller public class BoardController { private BoardService boardService = new BoardService(); public BoardController() { System.out.println("BoardController"); } }
  • 요청과 응답의 책임을 가지고 있는 컨트롤러 클래스
  • 비즈니스 로직은 BoardService에 위임하며, 이 클래스는 BoardService에 의존한다.
  • @Controller 어노테이션은 @Component를 포함하여 컴포넌트 스캔을 통해 빈으로 등록되며, 컨트롤러 역할을 수행하는 클래스임을 나타낸다.

2. BoardService

@Service public class BoardService { private BoardRepository boardRepository = new BoardRepository(); public BoardService() { System.out.println("BoardService"); } }
  • 비즈니스 로직(트랜잭션)의 책임을 가지고 있는 서비스 클래스
  • DB 상호작용은 BoardRepository에 위임하며, 이 클래스는 BoardRepository에 의존한다.
  • @Service 어노테이션은 @Component를 포함하여 컴포넌트 스캔을 통해 빈으로 등록되며, 비즈니스 로직을 담당하는 클래스임을 나타낸다.
 

3. BoardRepository

@Repository public class BoardRepository { public BoardRepository() { System.out.println("BoardRepository"); } }
  • DB 상호작용의 책임을 가지고 있는 Repository 클래스
  • CRUD 기능이 구현된다.
  • @Repository 어노테이션은 @Component를 포함하여 컴포넌트 스캔을 통해 빈으로 등록되며, 데이터 엑세스를 수행하는 클래스임을 나타낸다.
 
Share article

LHS's Study Space