@Repository:存儲層Bean
@Service:業務層Bean
@Controller:展示層Bean
@Repository用於將數據訪問層 (DAO 層 ) 的類標識為 Spring Bean。具體只需將該注解標注在 DAO類上即可。同時,為了讓 Spring 能夠掃描類路徑中的類並識別出 @Repository 注解,需要在 XML 配置文件中啟用Bean 的自動掃描功能,這可以通過<context:component-scan/>實現。

為什么 @Repository 只能標注在 DAO 類上呢?這是因為該注解的作用不只是將類識別為Bean,同時它還能將所標注的類中拋出的數據訪問異常封裝為 Spring 的數據訪問異常類型。 Spring本身提供了一個豐富的並且是與具體的數據訪問技術無關的數據訪問異常結構,用於封裝不同的持久層框架拋出的異常,使得異常獨立於底層的框架。
