2017-02-19 31 views
1

我正在寫一個RESTful應用程序與Spring 4.X. @Repository註解春:對DAO

在我的DAO調用遠程Web服務,我把@Service註解。 但是,在我最近的研究,我發現@Repository註解,according to Spring,是適合的DAO:

隊實現傳統的J2EE模式,如「數據訪問 對象」也可以將此構造型DAO類,雖然關心 應採取這樣做之前要了解數據訪問對象 和DDD風格的存儲庫之間的區別。此註釋是 通用的刻板印象和個人的團隊可能縮小其 語義和使用適當的。

我的問題是:Spring文檔是指DAO持久數據或DAO像我可以調用遠程服務的DAO?在我的情況下哪個是最適合的註釋?

Regards

回答

0

你也可以使用任何構造型,比如@Component。據我所知,這些刻板印象主要因'他們如何拋出異常'而異。你可以通過不同的刻板印象拋出異常。這就是爲什麼我們在DAO層上使用@Repository,在服務層上使用@Service等等,這樣我們就可以輕鬆地處理異常。

此鏈接將給你更多的信息。 http://javapapers.com/spring/spring-component-service-repository-controller-difference/

,Spring文檔指的是持久化數據的DAO。在你的情況下,這取決於你打電話的服務類型以及你想如何處理例外。我建議按照上面的建議鏈接。

0

參考 - Spring documentation

Spring提供進一步典型化註解:@Component,@Service和@Controller。 @Component是任何Spring管理組件的通用構造型。對於更具體的用例,@Repository,@Service和@Controller是@Component的特化,例如,分別在持久層,服務和表示層中。因此,你可以用@Component來註解你的組件類,但如果用@Repository,@Service或@Controller來註解它們,你的類也許能更好地被工具或與切面進行關聯適合處理。例如,這些刻板印象註解是切入點的理想目標。 @Repository,@Service和@Controller也可能在Spring Framework的未來版本中攜帶額外的語義。因此,如果您在爲服務層使用@Component或@Service之間進行選擇,@Service顯然是更好的選擇。同樣,如上所述,已經支持@Repository作爲持久層自動異常轉換的標記。

@Repository - 這是爲了指示該類定義的數據儲存庫。