SpringBoot2统一处理异常包括404异常

SpringBoot2.0.6 统一处理异常包括404异常

1. SpringBoot文档关于异常

2.默认异常BasicErrorController类

@Controller
@RequestMapping("${server.error.path:${error.path:/error}}")
public class BasicErrorController extends AbstractErrorController {

3. 先处理全局异常

4. 处理404异常

经过3的处理,在访问时抛出异常,会经过这个统一异常处理

但是,当请求的方法不存在是,会抛出404的异常

这个时候怎么处理呢

4.1 改写配置

#出现错误时, 直接抛出异常
spring.mvc.throw-exception-if-no-handler-found=true
#关闭工程中的资源文件建立映射
spring.resources.add-mappings=false

4.2 在全局异常处理中添加 NoHandlerFoundException异常处理

这样的话,当访问路径不存在时返回

4.3 集成swagger时,需要增加配置

如果按上面配置,在4.1中已经配置了不加载静态资源,这样导致swagger访问时出现问题,这样就得将swagger-ui特殊化

@Override
    public void addResourceHandlers(ResourceHandlerRegistry registry) {
        registry.addResourceHandler("/swagger-ui.html")
                .addResourceLocations("classpath:/META-INF/resources/", "/static", "/public");

        registry.addResourceHandler("/webjars/**")
                .addResourceLocations("classpath:/META-INF/resources/webjars/");


    }

网上有人说要继承WebMvcConfigurationSupport ,亲测,不可以

转载于:https://my.oschina.net/angelbo/blog/3003993

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值