-1

弹簧反应式网络:

在 Spring Boot 2.2.* 的早期,我使用了一个扩展 DefaultErrorAttributes 的类。此类用于全局处理整个微服务的异常。当我升级到 2.3.1 时,它不再工作了。我在 2.3.1 版本中没有发现 spring 响应式 web 有任何重大变化。有什么改变可以打破这个吗?我们需要改变什么吗?有输入吗?

似乎不再调用 DefaultErrorAttributes 了。示例代码在这里。

@Slf4j
@Component
public class GlobalErrorAttributes extends DefaultErrorAttributes{`

@Override
public Map<String, Object> getErrorAttributes(ServerRequest request, 
  boolean includeStackTrace) {
    Map<String, Object> map = super.getErrorAttributes(
      request, includeStackTrace);
    map.put("status", HttpStatus.BAD_REQUEST);
    map.put("message", "username is required");
    return map;
}

}

4

1 回答 1

1

我找到了你的答案,这对我有用

@Component
@Slf4j
public class ErrorAttributes extends DefaultErrorAttributes
{
    @Override
    public Map<String, Object> getErrorAttributes(ServerRequest request, ErrorAttributeOptions options) {
        
        var attributes = new LinkedHashMap<String, Object>();
        attributes.put("status", HttpStatus.BAD_REQUEST.value());
        attributes.put("message", "bad");
        return attributes;
    }


}

我有 2.3.1 版本的 Spring Boot

于 2020-08-06T18:40:10.867 回答