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이 선언된 모든 필드를 인자값으로 하는 생성자를 생성
'개발 > Spring' 카테고리의 다른 글
[JPA] 도메인 분석 설계 및 아키텍처 (0) | 2021.09.06 |
---|---|
[JPA] SpringBoot JPA 프로젝트 설정 (0) | 2021.09.06 |
[IntelliJ] tdd 라이브 템플릿 (0) | 2021.08.24 |
[gradle] 서블릿 Hello World - Gradle 프로젝트 생성 및 실행 (0) | 2021.07.07 |
[Spring] intelliJ에서 Slf4j 어노테이션 오류 (0) | 2021.04.04 |
댓글