본문 바로가기
BE/🍃 Spring

[Spring Boot JPA 게시판 만들기] 2. 프로젝트 구조 설정

by 틴디 2024. 4. 29.
반응형

 

 

Controller

 

  • MVC의 Controller
  • 서비스 계층을 호출하고 결과를 뷰에 전달함
  • 데이터 검증(벨리데이션)을 수행한다
  • 프로젠테이션 레이어로서 웹 요청과 응답을 처리한다
  • 비즈니스 로직이 구현되는 곳이 아니다! Request와 Response를 담당한다
  • url에 따라 적절한 View와 mapping을 처리
  • @Autowired, @Service를 사용해 service의 메소드를 사용한다
@Controller
@RequestMapping("/board")
public class BoardController {
    @Autowired
    private BoardService boardService;
}

 

 

 Service

  • 비즈니스 로직이 포함되며 트랜잭션을 시작 하는 곳이다
  • 데이터 접근 계층인 Repository를 호출한다
  • Repository에서 얻어온 정보를 바탕으로 Controller에 정보를 보낸다
  • @Autowired, @Repository를 사용하여 Repository의 메소드에 접근한다
  • DAO로 DB에 접근하고 DTO로 데이터를 넘겨 받는다
  • 비즈니스 로직을 처리하여 적절한 데이터를 반환한다
@Service
@RequiredArgsConstructor
@Transactional
public class BoardService {
    private final BoardRepository boardRepository;
}

 

Repository

  • JPA를 직접 사용하는 계층
  • 엔티티 매니저를 사용하여 엔티티를 저장하고 조회 할 수있다
  • 실제로 DB에 접근하는 객체이다
  • Service와 DB를 연결
  • JPA에서는 기본적인 CRUD를 제공한다
public interface BoardRepository extends JpaRepository<Board, Long> {
}

 

 

 

 

참고 사이트

 

Spring Boot 전체적인 구조 DataFlow(Controller,Service,Repository)

Controller란? 기능 해당 요청 url에 따라 적잘한 view와 mapping 처리 @Autowired @Service를 통해 service와 method를 이용 적절한 ResponseEntity(DTO)를 body에 담아 Client에 반환한다. @Controller API와 View를 동시에 사용

wjdvnadldzm.tistory.com

 

728x90
반응형

댓글