개발/Spring
[SpringBoot] 게시판 만들기 필요 클래스 및 동작
윤호
2021. 8. 17. 18:23
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이 선언된 모든 필드를 인자값으로 하는 생성자를 생성