[Spring] 입문_스프링 데이터 JPA

gayoung·2022년 3월 9일
0

스프링 완전 정복

목록 보기
15/33
post-thumbnail

기본 CRUD를 스프링부트 JPA가 모드 제공

  • 개발자는 핵심 비즈니스 로직을 개발하는데 집중할 수 있음
  • 스프링 데이터 JPA는 JPA를 편리하게 사용하게 도와주는 것

1. 스프링 데이터 JPA 이해하기

  • 인터페이스를 통한 기본적인 CRUD 제공
  • findByName() , findByEmail() 처럼 메서드 이름 만으로 조회 기능 제공
  • 페이징 기능 자동 제공

2. 코드 작성

2-1. (스프링 데이터 JPA 회원 레포지토리)

package hello.hellospring.repository;

import hello.hellospring.domain.Member;
import org.springframework.data.jpa.repository.JpaRepository;

import java.util.Optional;

public interface SpringDataJpaMemberRepository extends JpaRepository<Member, Long>, MemberRepository {  // id식별자=Long

    @Override
    Optional<Member> findByName(String name);  // 인터페이스 이름만으로 개발끝남
}
  • interface가 interface받기 위해서는 extends 사용
  • interface는 다중상속 가능(JpaRepository<Member, Long>, MemberRepository)
    • MemberRepository가 있기 때문에 findByName를 Override할 수 있음
  • JpaRepository 가지고있으면 SpringDataJpaMemberRepository 구현체를 자동으로 만들어줌 -> 구현체 자동 등록
  • JpaRepository: crud, findAll, save 등등 가지고있음 => 공통프로그램

2-2. SpringConfig(스프링 데이터 JPA 회원 리포지토리를 사용하도록 스프링 설정 변경)

@Configuration
public class SpringConfig {
    private final MemberRepository memberRepository;
    public SpringConfig(MemberRepository memberRepository) {
        this.memberRepository = memberRepository;
    }
    
    @Bean
    public MemberService memberService() {
        return new MemberService(memberRepository);
    }
}
  • 스프링 데이터 JPA가 SpringDataJpaMemberRepository 를 스프링 빈으로 자동 등록해준다.

0개의 댓글