본문 바로가기
개발/Spring

[SpringBoot] 게시판 만들기 필요 클래스 및 동작

by 윤호 2021. 8. 17.

1. 도메인 패키지

  • Posts 엔티티 클래스 생성
    • 데이터베이스와 맞닿은 핵심 클래스
    • 수정이 최소로 되도록 보장해야함
      • Controller에선 Dto를 사용
  • JpaRepository<Posts 엔티티, Long>을 상속받은 PostsRepository 인터페이스 생성
    • PostsRepository의 메소드로 Posts 생성과 조회 가능

2. Request 데이터를 받을 Dto

  • 게시글 저장
    • PostsSaveRequestDto 클래스를 생성
    • 게시글을 저장할 때, PostsRepository는 해당 Dto를 받아서 저장
    • Posts 엔티티와 필드가 동일
      • toEntity로 Dto를 PostsEntity로 변환하여 전달

3. 트랜잭션, 도메인 기능 간의 순서를 보장하는 Service

  • 각종 로직 처리 및 PostsRepository의 메소드를 실행

4. Controller

  • API 요청을 받음
  • 여기서 PostsService 의존성을 주입받아 사용함.

컨트롤러 -> 서비스, Dto -> 레포지토리, 엔티티

Bean 주입

  • 주입 방법 : @Autowired, setter, 생성자
  • @Autowired는 권장하지 않음. 생성자로 Bean 객체를 받도록 하면 동일한 효과
  • @RequiredArgsConstructor로 생성자 생략
    • final이 선언된 모든 필드를 인자값으로 하는 생성자를 생성

댓글