如何在到达端点之前使用Spring AOP处理异常

时间:2016-03-14 04:42:37

标签: json spring-boot spring-aop

我有一个弹簧控制器,其中定义了端点

@RequestMapping(value = "/hello", method = RequestMethod.POST)
@ResponseBody
public Map<String, String> hello() {
    .....
}

在我的方面课程中,我有,

@Around("execution(* org.example.metrics.dropwizard.SampleController.hello(..))")
public Object aroundCallingHello(ProceedingJoinPoint joinPoint) throws Throwable
{ 
}

让我们说,我的端点将一个java对象作为参数(POST调用)保存在数据库中。 来自网页的请求是JSON。如果JSON结构与JAVA POJO结构不匹配,则抛出异常。但是我无法在Aspect类中捕获该异常(aroundCallingHello方法不起作用)。如何在AOP中捕获这种类型的异常(其中请求甚至没有到达控制器中的端点)。我需要跟踪应用程序中的各种异常。谢谢。

1 个答案:

答案 0 :(得分:0)

您应该使用@ControllerAdvice来实现这些类型的异常处理。你可以找到一个完整的explanation with example here。您可以使用方法(或多种方法)来处理不同类型的异常(包括您是否有任何自定义异常)。希望这有帮助!