2013-04-27 138 views
0

我正在個人web項目中工作,我想使用Spring Data和JPA。我在springsource.com網站找到了this nice blog entry,我花了幾個小時試圖瞭解這項工作以及他們爲什麼這樣做。我主要需要兩個問題的幫助:Spring數據存儲庫方法實現

  1. 爲什麼需要使用Service和ServiceImpl類。這看起來像是一個典型的JPA 2實現,但是在Autowired存儲庫中使用了Spring Data。這真讓我困惑。爲什麼不直接使用存儲庫?
  2. 作者在CustomerRepository中定義了一對新的方法,但沒有任何實現。他繼續實施CustomerService,認爲它與存儲庫無關。我在很多網站都看到過這個,但我不明白它是如何工作的。

正如我所說,我一直在尋找一篇好文章來找到我的問題的答案,但他們大多數似乎是跟隨這些。我也檢查了文章項目的github代碼,但它不完整。我希望你能幫助我。

回答

3

博客文章的要點是討論spring-data存儲庫。所以它沒有詳細說明爲什麼服務是必要的。

這是因爲一個典型的業務方法將在單個事務中處理幾個DAO /存儲庫。例如,轉賬可能包括調用AccountRepository,AudiRepository和CustomerRepository。該服務的主要目標是向表示層提供事務性業務方法。

+0

哦!我懂了。那麼Repository方法實現呢?爲什麼沒有實現該方法findByLastname(String lastname,Pageable Pageable);作者直接使用它,而不用先定義身體。 – 2013-04-27 22:21:35

+0

這就是博文的全部內容,以及春季數據的美妙之處。 Spring動態地創建一個爲你實現接口的bean。您可以按照一組約定來定義方法。您需要註釋方法來指定JPQL,而Spring會爲您做其餘的工作。 – 2013-04-27 22:29:18

+0

但是Spring是否定義了方法體呢?真的有趣和impresive ...非常感謝您的幫助;) – 2013-04-27 22:54:24

相關問題