4 回答

TA貢獻(xiàn)1797條經(jīng)驗(yàn) 獲得超4個(gè)贊
不,它不會(huì)拋出任何異常。但是分離數(shù)據(jù)庫邏輯和業(yè)務(wù)邏輯的想法是將@Service 用于服務(wù)實(shí)現(xiàn)(業(yè)務(wù)邏輯)和@Repository 用于存儲(chǔ)庫,即處理數(shù)據(jù)庫操作(它可以是CRUD、PagingAndSorting 等)。
因此,代碼變得模塊化并遵循設(shè)計(jì)模式和編碼標(biāo)準(zhǔn)。服務(wù)將使用存儲(chǔ)庫。您的處理程序?qū)⑹褂媚姆?wù)中的方法。這就是它的工作原理。

TA貢獻(xiàn)1806條經(jīng)驗(yàn) 獲得超8個(gè)贊
根據(jù)Spring API 規(guī)范。
當(dāng)與 PersistenceExceptionTranslationPostProcessor 結(jié)合使用時(shí),使用@Repository 注釋的類符合 Spring DataAccessException 轉(zhuǎn)換的條件。注釋類也被闡明了它在整個(gè)應(yīng)用程序架構(gòu)中的作用,用于工具、方面等。
因此 DataAccessException 旨在用戶代碼在不知道正在使用的特定數(shù)據(jù)訪問 API(例如 JDBC)的詳細(xì)信息的情況下查找并處理遇到的錯(cuò)誤類型。
@Service 沒有任何 DataAccessException 翻譯,因此您可以在使用 @Service 注釋注釋的類上預(yù)期未翻譯的異常。它表明一個(gè)類是一個(gè)業(yè)務(wù)服務(wù)門面。

TA貢獻(xiàn)1803條經(jīng)驗(yàn) 獲得超3個(gè)贊
@Service ,@Repository,@Controller都是專門化@Component的都稱為Spring Beans
@Component generic stereotype for any Spring-managed component
@Repository stereotype for persistence layer
@Service stereotype for service layer
@Controller stereotype for presentation layer (spring-mvc)
這一切都是為了分發(fā)關(guān)注點(diǎn)(演示、業(yè)務(wù)、數(shù)據(jù)庫),所以它不會(huì)像您要求的那樣出現(xiàn)任何異常。
您可以在此處參考更多信息- Spring Docs

TA貢獻(xiàn)1851條經(jīng)驗(yàn) 獲得超5個(gè)贊
當(dāng)我們要開發(fā)任何項(xiàng)目時(shí),它應(yīng)該是lossy coupled and maintainable
. 實(shí)現(xiàn)這一層分離很重要
@Service
- 使用@Service 注釋所有服務(wù)類。該層知道工作單元。您所有的業(yè)務(wù)邏輯都將在服務(wù)類中。通常,服務(wù)層的方法都包含在事務(wù)之下。您可以從服務(wù)方法進(jìn)行多個(gè) DAO 調(diào)用。如果一個(gè)事務(wù)失敗,所有事務(wù)都應(yīng)該回滾。
@Repository
- 使用 @Repository 注釋所有 DAO 類。您所有的數(shù)據(jù)庫訪問邏輯都應(yīng)該在 DAO 類中。
@Component
- 使用組件構(gòu)造型注釋您的其他組件(例如 REST 資源類)。
使用它們的原因:
使用@Repository 或@Service 而不是@Component 的主要優(yōu)點(diǎn)是很容易編寫一個(gè)AOP 切入點(diǎn),例如,所有使用@Repository 注釋的類。
您不必在上下文 xml 文件中編寫 bean 定義。而是注釋類并通過自動(dòng)裝配來使用它們。
專門的注釋有助于清楚地劃分應(yīng)用層(在標(biāo)準(zhǔn)的 3 層應(yīng)用中)。
什么是刻板印象 參考這里
@Component 任何 Spring 管理組件的通用原型
@Repository 原型用于持久層
@Service 原型用于服務(wù)層
@Controller 原型用于表示層(spring-mvc)
有關(guān)更多詳細(xì)信息,請(qǐng)單擊此處和此處
添加回答
舉報(bào)