# Springboot整合Swagger2组件

> 作者/来源: UCloud 运营管理员
> 发布时间: 2023-01-11T05:20:00.000Z
> 分类: 解决方案
> 标签: 前端
> 原文链接: http://117.50.162.249:3000/yun/articles/1049

---

# Springboot整合Swagger2组件

> 来源: https://www.ucloud.cn/yun/129890.html
> 作者: IT那活儿
> 发布日期: 发布于2023-01-11 13:20

Springboot整合Swagger2组件

现如今，前后端分离已经逐渐成为互联网项目一种标准的开发方式，前端与后端交给不同的人员开发，但是项目开发中的沟通成本也随之升高，这部分沟通成本主要在于前端开发人员与后端开发人员对WebAPI接口的沟通，Swagger2 就可以很好地解决，它可以动态生成Api接口文档，降低沟通成本，促进项目高效开发。

Swagger2组件配置

**pom.xml添加依赖**

```
       <dependency>           <groupId>io.springfoxgroupId>           <artifactId>springfox-swagger2artifactId>           <version>2.4.0version>       dependency>       <dependency>           <groupId>io.springfoxgroupId>           <artifactId>springfox-swagger-uiartifactId>           <version>2.4.0version>       dependency>
```

**Swagger2配置类**

```
@Configuration@EnableSwagger2public class Swagger2Config implements WebMvcConfigurer {   @Bean   public Docket createRestApi() {       return new Docket(DocumentationType.SWAGGER_2).apiInfo(apiInfo()).select()           .apis(RequestHandlerSelectors.basePackage("task.web")).paths(PathSelectors.any()).build();   }   private ApiInfo apiInfo() {       return new ApiInfoBuilder().title("Simple APIs").description("simple apis")           .termsOfServiceUrl("http://www.***").contact(new Contact("d***", "http://***", "***@shsnc.com"))           .version("1.0").build();   }   @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/");   }}
```

**编写测试 Controller**

```
@Controller@RequestMapping("/test")@Api(tags = "用户接口")public class TestController {   @GetMapping("/login")   @ApiImplicitParams({@ApiImplicitParam(name = "username", value = "用户名", paramType = "query"),       @ApiImplicitParam(name = "password", value = "密码", paramType = "query")})   @ResponseBody   @ApiOperation(value = "用户登陆接口")   public String login(@RequestParam("username") String username, @RequestParam("password") String password) {       if ("shsnc".equals(username) && "123456".equals(password)) {           return "登陆成功";      } else {           return "登陆失败,用户名不存在或者密码错误";      }  }}
```

**查看接口文档**

启动我们的web工程，访问地址http://ip:port/contextName/swagger-ui.html，就可以看到文档页面了。

![](https://ucloud-blog.cn-bj.ufileos.com/articles/129890/images/129890_000.png)

可直接支持在线调试接口

![](https://ucloud-blog.cn-bj.ufileos.com/articles/129890/images/129890_001.png)

汉 化

1. 在resources目录下创建文件夹META-INF.resources
2. 将springfox-swagger-ui.jar包中swagger-ui.html拷贝到新建META-INF.resources里。
3. swagger-ui.html中导入国际化中文版js

   ![](https://ucloud-blog.cn-bj.ufileos.com/articles/129890/images/129890_002.png)
4. 重启项目，清空缓存，刷新页面。

![](https://ucloud-blog.cn-bj.ufileos.com/articles/129890/images/129890_003.png)

注 意

我们在启动后，请求http://ip:port/contextName/swagger-ui.html 直接报404错误；是因为Spring Boot默认是拦截静态资源，导致找不到swagger-ui.html。

我们只要放开swagger的静态资源即可。

![](https://ucloud-blog.cn-bj.ufileos.com/articles/129890/images/129890_004.png)

![](https://ucloud-blog.cn-bj.ufileos.com/articles/129890/images/129890_005.png)

END

更多精彩干货分享

点击下方名片关注

IT那活儿

![](https://ucloud-blog.cn-bj.ufileos.com/articles/129890/images/129890_006.png)