공통 인터페이스 (17 개)의 스프링 JPA 데이터 분석

생각

고객의 경우, 우리는 사용자 정의 CustomerDao을 발견하고, 이러한 방법은 정확히 어떻게 이러한 방법을 많이 사용할 수있는 방법을 제공하지 않았다? 우리는 두 인터페이스의 모든 메소드를 사용할 수 있도록 대답은, 우리의 사용자 정의 다오, JpaRepository 및 JpaSpecificationExecutor에서 상속을위한 인터페이스 간단하다.

인터페이스에 정의 된 이러한 방법을 사용할 수 그래서 스프링 데이터 JPA, 일반 실현 JpaRepository 및 JpaSpecificationExecutor 인터페이스를 사용하지만, 이러한 그냥 문, 아니 특정 구현의 일부가되면, 그것은에있는 스프링 데이터 JPA를 달성하는 방법입니다 그것은?

분석을 처리

프로그램이 실행될 때, JdkDynamicAopProxy 의한 방법은 동적 프록시를 생성하는 호출한다 customerDao 개체를 개체. 스프링 데이터 JPA에 따르면 지식을 도입, findOne 쿼리 방법을 수행하기 위해, 결국 JPA의 API 사양은, 존재하는 경우의 기본 코드를 할 것인가? 대답은 JdkDynamicAopProxy 그들에 의해 생성 된 동적 프록시 개체에 숨겨진, 간단하고,이 동적 프록시 객체는 SimpleJpaRepository입니다

(1) 우리는 인터페이스를 쓸 수 있지만 구현 클래스를 작성하지 않았다가, 구현 클래스는 런타임에 봄 프록시 객체이며, 주입.
2 .Spring는 DAO 구현 클래스를 생성하는 방법을 알고? 인터페이스는 구성 파일에 지정된 패키지 DAO 상주하기 때문에

  <JPA : 저장소 기본 패키지 = "cn.oracle.dao"
  트랜잭션 관리자-REF = "의 transactionManager"
  엔티티 매니저 공장-REF = "의 EntityManagerFactory"> </ JPA : 저장소>

3 . 생성 된 객체는 무엇입니까? 프록시 객체는 다음 Proxy.newProxyInstance 다이나믹 프록시 객체 (클래스 로더,의 InvocationHandler 구현 인터페이스 목록) JdkDynamicAopProxy 의해 생성 JDK이 객체의 InvocationHandler 인터페이스 달성이 클래스는 호출 메소드 갖는


4 호출 메소드 JdkDynamicAopProxy하여. 물체의 실제 작업하는 대상체가

5 실제 작업 개체 :. SimpleJpaRepository

6 .SimpleJpaRepository DAO 인터페이스 상속 우리는 두 개의 인터페이스, 그것이 확실히이 클래스의 모든 인터페이스 메소드 가지고 실현

7. 우리를 findOne 방법이라고 em.find 방법을 참조, 결국 그들은 누구인가?

 

추천

출처www.cnblogs.com/zhaochengf/p/12127772.html