2012-01-06 56 views
0

我目前正在重写一个遗留的Web应用程序,其中包括CORBA和另一个RPC框架 - 这两者都很旧,并且没有Spring支持。使用遗留框架生成Spring DataAccessExceptions

我的希望是,我最终可以编写一个@Repository类来处理CORBA和其他RPC调用,并将它们的所有异常包装为DataAccessException,然后再抛出。

我的问题是

  1. 是有如何去这样做使我的仓库不丢太多DataAccessExceptions特别是在其中两个CORBA和RPC异常可以通过抛出的区域最佳实践同一个存储库方法?
  2. 存储库类中是否应该有一个“低于”类来处理某些内容并将其抽象化,或者从技术上讲,存储库类的用途是什么?
+0

请问您的仓库工作,不同的实体类型?还是只有一个? – Vlad 2012-01-06 10:01:38

+0

不同。但我认为*他们可能都会经历相同的NameComponent名称。我希望为每个技术堆栈单独进行回购,甚至可以为每个CORBA对象类型创建回购,我必须根据需要在后端ORB/RPC代码中引用和自动装载。 – icfantv 2012-01-06 17:57:34

回答

0

由于社区没有回应,我以为我会发布我的实施,这绝不是幸运的,甚至可能闻到一点点。

为了让代码调用我的业务层(类标记为@Service)只需要担心一个例外(即DataAccessException),业务层或以下代码抛出的任何/所有异常都被包装成某种形式DataAccessException。这个奇怪的原因是因为业务逻辑可能合法地抛出与数据访问无关的异常,例如验证。

但是,这个想法是不要让我的servlets有多个catch块或者try { ... } catch (Exception ex) { ... }的反模式。

再次,不是一个真正的答案,但我想它的工作...