端点的异常处理组件

时间:2014-04-04 14:57:35

标签: java spring interceptor spring-aop endpoint

我正在使用Spring。 我的应用程序中有几个端点。基本上,每个端点返回一个不同的对象。 该应用程序包含多个层次。 无论发生何种错误,将错误传播给端点的调用者对我们都很重要。 我们的方法在发生错误时抛出异常,并且应该在端点中捕获,并且端点应根据异常中的信息更改响应的状态代码。我们赶上了异常,因为我们不想将肥皂故障抛给调用者

我们已经到了架构中的一个点,我们不希望端点管理异常。我们认为应该在某种拦截器或AOP中完成。 重要的是,在那个“外部异常处理组件”中,我可以完全获得异常及其属性,并且基于此,无论调用什么端点,获取端点的返回类型对象并通过填充一些适当的返回它基于异常的字段,可能是一些java反射

我的第一种方法是使用SOAP拦截器,但我认为它根据我的需要而受到限制。我正在研究AOP,有什么想法吗?

1 个答案:

答案 0 :(得分:0)

在我看来,这是AOP的完美场景。但问题出在哪里? :)您可以在服务方法(而不是终点)上创建@Around类型的Aspect,然后在try catch块中调用joinPoint.proceed()。抓住异常并返回你想要的东西:P通过使用AOP API你可以检查什么应该是返回类型,参数..基本上你需要的一切:)