2013-04-27 2 views
0

개인 웹 프로젝트에서 작업 중이며 스프링 데이터와 JPA를 사용하고 싶습니다. springsource.com에서 this nice blog entry을 발견했으며 몇 시간 동안이 작업이 왜 이러한 방식으로 수행되는지 이해하려고 노력했습니다. 주로 두 가지 질문에 대한 도움이 필요합니다.스프링 데이터 저장소 메소드 구현

  1. 왜 Service 및 ServiceImpl 클래스를 사용해야합니까? 이는 일반적인 JPA 2 구현과 같지만 Autowired 저장소가있는 스프링 데이터를 사용합니다. 이것은 정말로 나를 혼란스럽게합니다. 저장소를 직접 사용하지 않는 이유는 무엇입니까?
  2. 작성자는 CustomerRepository에서 한 쌍의 새 메서드를 정의하지만 구현이 없습니다. 그는 저장소와 관련이없는 CustomerService 구현을 계속합니다. 이 사이트를 여러 사이트에서 보았지만 어떻게 작동하는지 이해할 수 없습니다.

내가 말했듯이 내 질문에 대한 답변을 찾기 위해 좋은 기사를 찾고 있었지만 대부분은 이러한 질문을 따르는 것으로 보입니다. 또한 기사의 프로젝트에 대한 github 코드를 확인했지만 완성되지 않았습니다. 네가 나를 도울 수 있기를 바랍니다.

답변

3

블로그 게시물의 요점은 스프링 데이터 저장소에 대해 이야기하는 것입니다. 따라서 서비스가 필요한 이유에 대해서는 자세히 설명하지 않습니다.

일반적인 비즈니스 방법은 단일 트랜잭션으로 여러 DAO/리포지토리를 처리하기 때문입니다. 예를 들어, 돈을 이체하는 것은 AccountRepository, AudiRepository 및 CustomerRepository를 호출하는 것을 포함 할 수 있습니다. 이 서비스의 주요 목표는 프레젠테이션 계층에 트랜잭션 방식의 비즈니스 방법을 제공하는 것입니다.

+0

오! 내가 참조. Repository 메소드 구현은 어떻습니까? 왜 메서드에 대한 구현이 없습니다. PageBufferLastname (String lastname, Pageable pageable); 저자는 시체를 먼저 정의하지 않고 직접 사용합니다. –

+0

블로그 게시물의 전체 요점과 스프링 데이터의 아름다움입니다. 스프링은 당신을 위해 인터페이스를 구현하는 빈을 동적으로 생성한다. 규칙 집합을 따라 방법을 정의합니다. 필요한 경우 JPQL을 지정하는 메소드에 주석을 달고 나머지는 Spring이 처리한다. –

+0

그러나 Spring은 메서드 본문도 정의합니까? 정말 재미 있고 impresive ... 도와 주셔서 대단히 감사합니다;) –