스프링 시큐리티는 JDBC 기반, LDAP 기반, 인메모리 사용자 저장소를 포함한 몇 가지 인증 옵션을 제공한다. 여기서는 JPA를 이용한 데이터베이스를 기반으로 사용자를 인증하자. 두 번째 configure() 메서드는 사용자를 인증하려고 사용자 상세 정보 서비스를 설정한다. 이 서비스는 UserDetailsService를 구현하는 클래스이며, 제공된 사용자 이름으로 사용자의 상세 정보를 조회할 때 사용한다. 앞의 코드는 주입된 ReaderRepository(스프링 데이터 JPA 리포지토리 인터페이스)의 findOne() 메서드를 호출하는 익명 내부 클래스 구현을 보여 준다.
코드 3-6 Reader를 영속화하는 리포지토리 인터페이스
package readinglist; import org.springframework.data.jpa.repository.JpaRepository; // JPA로 Reader 영속화 public interface ReaderRepository extends JpaRepository<Reader, String> { }
ReadingListRepository와 마찬가지로 ReaderRepository도 추가로 구현 코드를 작성할 필요가 없다. JpaRepository를 확장하므로 스프링 데이터 JPA가 런타임에 자동으로 구현체를 생성한다. 결국 Reader 엔티티를 다루는 메서드 18개를 자동으로 생성한다.