我在我的Spring应用程序中使用了morphia和mongodb。在许多示例项目中,我看到许多服务接口方法抛出了DataAccessException。据我所知,这个异常是从各种框架类中抛出的,以简化各种数据访问实现的异常处理。
此时,我猜想我应该捕获由吗啡引发的任何错误,并从我的服务实现中抛出DataAccessException。所以我的问题是,我应该用使用吗啡的服务实现来建模这种方法吗?或者我只是误解了这一点。
如果您希望业务逻辑能够对特定类型的 DataAccessException 不依赖于morphia/mongo类型。
DataAccessException
最简单的方法是编写一个实现 PersistenceExceptionTranslator 以及如何将morphia/mongo异常转换为 数据访问异常 . 将这个类声明为bean,如果您的DAO类被注释为 @Repository .
PersistenceExceptionTranslator
数据访问异常
@Repository
但是,如果您的业务逻辑或异常处理逻辑并不真正关心 哪一个 抛出异常类型,则似乎没有什么意义。