springboot集成swagger过程解析

网友投稿 286 2023-07-02

springboot集成swagger过程解析

springboot集成swagger过程解析

这篇文章主要介绍了springboot集成swagger过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

springboot集成swagger

1、pom.xml中引入:

springfox-swagger2

2.9.2

io.springfox

springfox-swagger-ui

2.9.2

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(ResourceHandhttp://lerRegistry 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/");

}*

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:springboot+idea热启动设置方法(自动加载)
下一篇:springboot如何使用AOP做访问请求日志
相关文章

 发表评论

暂时没有评论,来抢沙发吧~