검색결과 리스트
글
스프링 입문 맛보기 9
인프런 강의 17일차.
- 스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술 (김영한 강사님)
1. 스프링 데이터 JPA
- 스프링 부트와 JPA만 사용해도 개발 생산성이 많이 증가한다.
- 여기에 스프링 데이터 JPA를 사용하면 기존의 한계를 넘어 리포지토리에 구현 클래스 없이 인터페이스 만으로 개발을 완료할 수 있다.
- 반복 개발해온 기본 CRUD 기능도 스프링 데이터 JPA가 모두 제공한다.
- 스프링 부트와 JPA라는 기반 위에, 스프링 데이터 JPA 프레임워크를 더하면 단순/반복 개발 코드가 확연하게 줄어드므로 개발자는 핵심 비즈니스 로직을 개발하는데 집중할 수 있다.
- 실무에서 관계형 데이터베이스를 사용한다면 스프링 데이터 JPA는 이제 선택이 아니라 필수!!
* 스프링 데이터 JPA는 JPA를 편리하게 사용할 수 있도록 도와주는 기술이므로 JPA를 먼저 학습한 이후에 스프링 데이터 JPA를 학습해야한다.
//스프링 데이터 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{
Optional<Member> findByNames(String name);
}
//스프링 데이터 JPA 회원 리포지토리를 사용하도록 스프링 설정 변경
package hello.hellospring;
import hello.hellospring.repository.*;
import hello.hellospring.service.MemberService;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@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'를 스프링 빈으로 자동 등록해준다.
* 스프링 데이터 JPA 제공 기능
- 인터페이스를 통한 기본적인 CRUD
- 'findByName()' , 'findByEmail()' 처럼 메소드 이름만으로 조회 기능 제공
- 페이징 기능 자동 제공
** 참고 : 실무에서는 JPA와 스프링 데이터 JPA를 기본으로 사용하고, 복잡한 동적 쿼리는 Querydsl이라는 라이브러리를 사용하면 된다. Querydsl을 사용하면 쿼리도 자바 코드로 안전하게 작성할 수 있고, 동적 쿼리도 편리하게 작성할 수 있다. 이 조합으로 해결하기 어려운 쿼리는 JPA가 제공하는 네이티브 쿼리를 사용하거나, 앞서 학습한 스프링 JdbcTemplate를 사용하면 된다.
'Spring 정리' 카테고리의 다른 글
스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술 1 (0) | 2021.08.18 |
---|---|
스프링 입문 맛보기 10 (0) | 2021.08.11 |
스프링 입문 맛보기 8 (0) | 2021.08.05 |
스프링 입문 맛보기 7 (0) | 2021.08.05 |
스프링 입문 맛보기 6 (0) | 2021.08.04 |