springboo项目整合swagger 以及整合之后访问报错的解决方案

一,什么是Swagger
可以理解为,为你的项目增加一个api文档,这个api文档可以是自动生成的可以看到你的所有api接口,还可以调这些api接口
二,需要那些架包
在这里插入图片描述
三,需要一个swagger的配置类

@Configuration
@EnableSwagger2
再swagger类里面需要添加这两个注解,

/**
 * 这是Swagger2的配置文件,必须需要此文件
 * Swagger与工程结合需要引入依赖,已在pom.xml中表明,一共2个依赖
 * <p>
 * swagger2文档的默认地址是 .../swagger-ui.html
 * <p>
 * https://swagger.io/
 *
 * @author hechanglong
 */
@Configuration
@EnableSwagger2
public class Swagger2 {

    @Bean
    public Docket createRestApi() {
        return new Docket(DocumentationType.SWAGGER_2)
                .apiInfo(apiInfo())
                .select()
                // 指定controller存放的目录路径
                .apis(RequestHandlerSelectors.basePackage("com.example.demo.controller"))
                .paths(PathSelectors.any())
                .build();
    }

    private ApiInfo apiInfo() {
        return new ApiInfoBuilder()
                // 文档标题
                .title("SpringBoot Base Demo")
                // 文档描述
                .description("Swagger2和SpringBoot相结合")
                .termsOfServiceUrl("")
                .version("v1")
                .build();
    }

四,再controller的上面使用api注解,标明controller的名称

@Api(value="驾校管理", tags = "驾校模块")

五,swagger一些注解的意思

Swagger使用的注解及其说明:

@Api:用在类上,说明该类的作用。

@ApiOperation:注解来给API增加方法说明。

@ApiImplicitParams : 用在方法上包含一组参数说明。

@ApiImplicitParam:用来注解来给方法入参增加说明。

@ApiResponses:用于表示一组响应

@ApiResponse:用在@ApiResponses中,一般用于表达一个错误的响应信息

    l   code:数字,例如400

    l   message:信息,例如"请求参数没填好"

    l   response:抛出异常的类   

@ApiModel:描述一个Model的信息(一般用在请求参数无法使用@ApiImplicitParam注解进行描述的时候)

    l   @ApiModelProperty:描述一个model的属性

然后启动springboot,访问http://localhost:8080/swagger-ui.html
六,如果访问报错,显示该swagger-ui.html,由dispatcherServlet找不到改html

No mapping found for HTTP request with URI [/swagger-ui.html] in DispatcherServlet with name 'dispatcherServlet'

这个时候你肯定有个类extends了WebMvcConfigurerAdapter这个类,swagger里面有个WebMvcConfigurerAdapter的bean,springboot里面也有一个,所以就覆盖了,需要加上一段代码就能实现了

@Configuration
public class WebMvcConfig extends WebMvcConfigurerAdapter {

    /**
     * @Description 静态资源路径
     */
    @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/");
        super.addResourceHandlers(registry);
    }
}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值