📗

[스프링부트와 JPA 활용1] 4. 도메인 개발

작성일자
Nov 28, 2022
태그
SUB PAGE
프로젝트
JPA 활용1
책 종류
본 게시글은 하단 강의를 듣고 학습한 내용을 제 생각으로 요약, 정리한 글입니다.

1. 회원 리포지토리 개발

1) 구현 기능

  • 회원 등록
  • 회원 목록 조회
 

2) 구현 순서

  • 회원 엔티티 개발(이미 완료)
  • 회원 리포지토리 개발
  • 회원 서비스 개발
  • 회원 기능 테스트
 

3) 회원 엔티티

jpabook/jpashop/domain/Member.java
  • 속성: 회원id(PK), 이름, 주소, 주문list
    • 주문list는 일대다 관계인 회원-주문 관계로 인해 생김
    •  

4) 회원 리포지토리

jpabook/jpashop/repository/MemberRepository.java
  • jpql과 sql 차이
    • sql은 테이블을 대상으로 query함.
    • jpql은 엔티티 객체를 대상으로 query함.
    •  

2. 회원 서비스 개발

1) 회원 서비스

jpabook/jpashop/service/MemberService.java
 

2) 여러 가지 주입 방법 비교

  • field injection
    • 정의)
    • setter injection
      • 정의)
        • 장점)
          • test code 작성 시 mock 직접 주입 가능.
            • field injection은 주입 까다로움
          • 즉, memberRepository 바꿀 수 있음. 가짜 memberRepository 주입 가능.
        • 단점) 런타임에 바꿀 일 없음
      • 생성자 injection
        • 정의)