스프링 데이터 JPA
2023. 5. 2. 14:50ㆍ카테고리 없음
스프링 데이터 JPA는 JPA를 도와주는 역할을 가지는 기능이다. 따라서 JPA를 모른다면 스프링 데이터는 무용지물이 되어버리는 것이기 때문에, JPA를 먼저 배운 후 스프링 데이터 JPA 를 배우도록 하는것이 좋다.
스프링 데이터 JPA 회원 레퍼지토리
package com.example.demo.Repository;
import com.example.demo.domain.Member;
import org.springframework.data.jpa.repository.JpaRepository;
import java.util.Optional;
public interface SpringDataJpaMemberRepository extends JpaRepository<Member, Long>, MemberRepository {
//인터페이스가 인터페이스를 받을땐 extends 이다. <key,value>
@Override
Optional<Member> findByName(String name);
}
스프링 데이터 JPA회원 레퍼지토리를 사용하도록 스프링 설정 변경
package com.example.demo;
import com.example.demo.Repository.*;
import com.example.demo.aop.TimeTraceAop;
import com.example.demo.service.MemberService;
import jakarta.persistence.EntityManager;
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;
public SpringConfig(MemberRepository memberRepository, EntityManager em) {
this.memberRepository = memberRepository;
}
@Bean// 스프링 빈에 내가 직접 입력해주어서 컨테이너에 넣는 방식.
public MemberService memberService() { //spring bean에 저장되어서 memberService에 넣어주고
return new MemberService(memberRepository); // 그 MemberService는 memberRespository를 사용할수있게끔하고
}
스프링 데이터 JPA 제공 클래스
스프링 데이터 JPA 제공 기능
인터페이스를 이용한 기본적으로 하는 CRUD, 메서드 이름만으로도 조회 가능한 기능을 제공하고, 페이징 기능 자동 제공을 하는등 많은 기능을 한다.