我想在SpringBoot中禁用默认的404处理程序,例如:
@ExceptionHandler(value = [NoHandlerFoundException::class])
fun handleNotFoundException(e:NoHandlerFoundException):ResponseEntity<ApiError>{
return ResponseEntity.status(HttpStatus.NOT_FOUND)
.contentType(MediaType.APPLICATION_JSON_UTF8)
.body(ApiError("Resource not found"))
}
,并能够使用/swagger-ui.html#
上的api文档来管理swagger UI。
但是,禁用默认的404处理程序需要设置
spring.resources.add-mappings=false
中的application-properties
,这也将禁用投放摇摇欲坠的用户界面。有没有办法将两者结合起来?
我将springboot:2.1.7
和springox:swagger:2.9.2
和springfox:swagger-ui:2.9.2
一起使用
答案 0 :(得分:0)
我们已经实现了swagger-ui和自定义异常处理程序。我们采用的方法是解析api的swagger文件。
我们通过配置Docket的@Bean来配置swagger,该链接也在此链接中指定:https://springframework.guru/spring-boot-restful-api-documentation-with-swagger-2/
答案 1 :(得分:0)
是的,您可以通过扩展 WebMvcConfigurer
并添加以下方法来实现
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("swagger-ui.html")
.addResourceLocations("classpath:/META-INF/resources/");
registry.addResourceHandler("/webjars/**")
.addResourceLocations("classpath:/META-INF/resources/webjars/");
}
注意:确保您的类使用 @configuration