如果我不使用@Repository注释DAO类,那么仍然可以使未经检查的异常(从DAO方法抛出)有资格转换为Spring DataAccessException吗?任何人都可以这样做吗?与@Repository注释相混淆
答案 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代理或新生成的代理) 实现所有目标接口。)
希望这会帮助你理解!!