Spring/inflearn

스프링 데이터 JPA

곽수진 2022. 9. 7. 00:25
반응형

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> {

    Optional<Member> findByName(String name);
}

▶ 스프링 데이터 JPA 회원 리푖토리

 

 

package hello.hellospring;

import hello.hellospring.repository.JpaMemberRepository;
import hello.hellospring.repository.MemberRepository;
import hello.hellospring.service.MemberService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

@Configuration
public class SpringConfig {

    private final MemberRepository memberRepository;

    @Autowired
    public SpringConfig(MemberRepository memberRepository) {
        this.memberRepository = memberRepository;
    }

    @Bean
    public MemberService memberService(){
        return new MemberService(memberRepository);
    }
}

▶ 스프링 데이터 JPA 회원 리포지토리를 사용하도록 스프링 설정 변경

    → 스프링 데이터 JPA가 SpringDataJpaMemberRepository를 스프링 빈으로 자동 등록해줌

 

 

MemberServiceIntegrationTest 파일을 실행하면 정상적으로 테스트 작동

 

 

스프링 데이터 JPA 제공 기능
- 인터페이스를 통한 기본적인 CRUD
- findByName(), findByEmail() 처럼 메서드 이름 만으로 조회 기능 제공
- 페이징 기능 자동 제공
반응형

'Spring > inflearn' 카테고리의 다른 글

AOP 적용  (0) 2022.09.09
AOP  (0) 2022.09.08
JPA  (0) 2022.09.06
스프링 JdbcTemplate  (0) 2022.09.05
스프링 통합 테스트  (0) 2022.09.04