springboot集成swagger过程解析
时间:2022-05-10 10:13:43|栏目:JAVA代码|点击: 次
这篇文章主要介绍了springboot集成swagger过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
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/");
}*


阅读排行
- 1Java Swing组件BoxLayout布局用法示例
- 2java中-jar 与nohup的对比
- 3Java邮件发送程序(可以同时发给多个地址、可以带附件)
- 4Caused by: java.lang.ClassNotFoundException: org.objectweb.asm.Type异常
- 5Java中自定义异常详解及实例代码
- 6深入理解Java中的克隆
- 7java读取excel文件的两种方法
- 8解析SpringSecurity+JWT认证流程实现
- 9spring boot里增加表单验证hibernate-validator并在freemarker模板里显示错误信息(推荐)
- 10深入解析java虚拟机




