我们是否可以在不使用DAO中的@Repository注释的情况下为Spring DataAccessException创建符合条件的异常(从DAO方法抛出)

时间:2015-04-24 20:22:49

标签: spring hibernate spring-mvc dao spring-aop

如果我不使用@Repository注释DAO类,那么仍然可以使未经检查的异常(从DAO方法抛出)有资格转换为Spring DataAccessException吗?任何人都可以这样做吗?与@Repository注释相混淆

1 个答案:

答案 0 :(得分:0)

在此link

上给出的@Repository的定义
  

最初表示带注释的类是“存储库”   由领域驱动设计(Evans,2003)定义为“一种机制   封装模拟a的存储,检索和搜索行为   对象集合“。

     

团队实施传统的J2EE模式,例如“数据访问”   对象“也可以将这种刻板印象应用于DAO类,但要小心   应该了解数据访问之间的区别   在执行此操作之前,对象和DDD样式的存储库。这个注释是   一般的刻板印象和个别团队可能会缩小他们的范围   语义和适当的使用。

     

如此注释的类符合Spring DataAccessException的条件   与a一起使用时的翻译   PersistenceExceptionTranslationPostProcessor。带注释的类是   还澄清了它在整个应用程序架构中的作用   用于工具,方面等目的。

如果我不使用@Repository注释DAO类,那会是什么呢 使得未经检查的异常(从DAO方法抛出)有资格转换为Spring DataAccessException吗?

不,因为根据此link

提供的详细信息
  

Bean后处理器,自动应用持久性异常   转换为标有Spring的@Repository注释的任何bean,   添加相应的PersistenceExceptionTranslationAdvisor到   公开的代理(现有的AOP代理或新生成的代理)   实现所有目标接口。)

希望这会帮助你理解!!