我想使用AOP拦截服务层中抛出的所有运行时异常,并重新抛出域异常.
@Aspect @Component public class ExceptionWrapperInterceptor { @Pointcut("within(*.service.*)") public void onlyServiceClasses() {} @AfterThrowing(pointcut = "onlyServiceClasses()", throwing = "ex") public void intercept(DataAccessException ex) throws Exception { //throw DatabaseException } @AfterThrowing(pointcut = "onlyServiceClasses()", throwing = "ex") public void intercept(RuntimeException ex) throws Exception { //throw ServiceException } }
这里的问题是,使用DataAccessException的子类,运行时执行错误的方法.有一个优雅的解决方案吗?
春季版:4.2.4.RELEASE
PS一个通用的方法(从其他问题中读取)有很多实例对我来说不优雅;-)
谢谢弗朗切斯科