码迷,mamicode.com
首页 > 编程语言 > 详细

springboot集成swagger

时间:2020-01-02 22:30:35      阅读:73      评论:0      收藏:0      [点我收藏+]

标签:color   重要   override   meta   config   docke   技术   效果   response   

springboot集成swagger

1、pom.xml中引入:

    <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-swagger2</artifactId>
            <version>2.9.2</version>
        </dependency>
        <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-swagger-ui</artifactId>
            <version>2.9.2</version>
        </dependency>

2、配置类:

@Configuration
@EnableSwagger2
public class SwaggerConfig {
    @Bean
    public Docket swaggerSpringMvcPlugin() {

        return new Docket(DocumentationType.SWAGGER_2)
                .select()
                //加了ApiOperation注解的类,才生成接口文档
                .apis(RequestHandlerSelectors.withMethodAnnotation(ApiOperation.class))
                .build();
    }

}

3、controller相应的注解:@ApiOperation

  @ApiOperation(value = "用户登录",notes = "")
    @PostMapping("/loginOn")
    public ResponseMessage loginOn(@RequestBody @Valid UserReq userReq){
        ResponseMessage responseMessage = userServiceImp.loginOn(userReq);
        return responseMessage;
    }

最后本地默认访问:http://localhost:8080/swagger-ui.html

既可以看到相关接口效果图:

技术图片

 

 

 访问页失败的可能原因:

1》》访问方法本来就是404错误:在sprigboot中有个重要的概念叫做:约定优于配置:

springboot启动的时候如果没有指定扫描的包路径时,默认会去加载其当前包及子包下的组件,这里需要注意

技术图片

 

 如果把启动类放入service包下,页面就会访问不到:

技术图片

技术图片

 

 2》》SwaggerConfig 类的写法有问题:Docket方法挺多的,这里需要注意:

技术图片

@Configuration
@EnableSwagger2
public class SwaggerConfig {
    @Bean
    public Docket swaggerSpringMvcPlugin() {

        return new Docket(DocumentationType.SWAGGER_2)
                .select()
                //加了ApiOperation注解的类,才生成接口文档
                .apis(RequestHandlerSelectors.withMethodAnnotation(ApiOperation.class))
                .build();
    }

}

 

3》》配置拦截器时是否进行了拦截:

在实现WebMvcConfigurer接口时,我们再配置拦截器时,需要对相应的请求进行过滤放行,比如静态资源,登录请求等

@Configuration
public class WebConfig implements WebMvcConfigurer {
    /**
     * 配置拦截器
     * @param registry
     */
    @Override
    public void addInterceptors(InterceptorRegistry registry) {
        registry.addInterceptor(new RequestInterceptor()).addPathPatterns("/**").excludePathPatterns("/user/login")
                //排除swagger
        .excludePathPatterns("/swagger-resources/**", "/webjars/**",
                "/v2/**", "/swagger-ui.html/**");
    }

}

有的代码是通过重写WebMvcConfigurer的addResourceHandlers方法:

/**
     * 添加静态资源--过滤swagger-api (开源的在线API文档)
     * @param registry
     *//*
    @Override
    public void addResourceHandlers(ResourceHandlerRegistry registry) {
        //过滤swagger
        registry.addResourceHandler("swagger-ui.html")
                .addResourceLocations("classpath:/META-INF/resources/");

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

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

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

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

    }*

springboot集成swagger

标签:color   重要   override   meta   config   docke   技术   效果   response   

原文地址:https://www.cnblogs.com/tdyang/p/12142064.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!