本文介绍了Spring Webflow ErrorHandling-@RestControllerAdviceswith@ExceptionHandler或DefaultErrorAttributes?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
在Spring Webflow中,首选的异常处理方式是什么?
@RestControllerAdacy来自Spring MVC,而DefaultErrorAttributes来自Spring Webflow。
然而,在Spring Webflow中,有人可以使用@RestControllerAdance。优势/劣势是什么?
@RestControllerAdacy
@RestControllerAdvice
public class ControllerAdvice
{
@ExceptionHandler(Throwable.class)
@ResponseStatus(HttpStatus.BAD_REQUEST)
public Mono<Map<String, Object>> exceptions(Throwable e)
{
return Mono.just(Map.of("message", "bad"));
}
}
扩展DefaultErrorAttributes
@Component
public class ErrorAttributes extends DefaultErrorAttributes
{
@Override
public Map<String, Object> getErrorAttributes(ServerRequest request, boolean includeStackTrace)
{
var ex = getError(request);
var attributes = new LinkedHashMap<String, Object>();
attributes.put("status", HttpStatus.BAD_REQUEST.value());
attributes.put("message", "bad");
return attributes;
}
}
我想留在被动世界中,所以我更倾向于DefaultErrorAttributes(它与Webflow中的DefaultErrorWebExceptionHandler配合得很好)。但是,在@RestControllerAdvice中,我也可以使用Mono.Just(...)。
推荐答案
相同。如WebMvc。
@RestControllerAdvice
public class ControllerAdvice {
@ExceptionHandler(AnyException.class)
public Mono<EntityResponse<YourModel>> example(AnyException exception) {
return EntityResponse.fromObject(new YourModel()).status(HttpStatus.NOT_FOUND).build();
}
}
这篇关于Spring Webflow ErrorHandling-@RestControllerAdviceswith@ExceptionHandler或DefaultErrorAttributes?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!