JavaSpring、Morphia和DataAccessException实现
我正在Spring应用程序中使用Morphia和MongoDB。我在许多示例项目中看到,许多服务接口方法抛出DataAccessException。据我所知,这个异常是从各种框架类抛出的,以简化各种数据访问实现的异常处理
此时,我想我应该捕获Morphia抛出的任何错误,并从我的服务实现中抛出DataAccessException。所以我的问题是,我应该用使用Morphia的服务实现对这种方法进行建模吗?也许我只是误解了这一点
# 1 楼答案
如果您希望您的业务逻辑能够对特定类型的
DataAccessException
做出反应,而不依赖于Morphia/Mongo类型,那么这是有意义的最简单的方法是编写一个实现
PersistenceExceptionTranslator
的类,它知道如何将Morphia/Mongo异常转换为DataAccessException
。将这个类声明为bean,如果DAO类用@Repository
注释,Spring将自动要求它转换异常然而,如果您的业务逻辑或异常处理逻辑并不真正关心抛出哪种异常类型,那么这似乎没有什么意义