ssm+maven+swagger2整合

1.什么是swagger:
Swagger 是一个规范和完整的框架,用于生成、描述、调用和可视化 RESTful 风格的 Web 服务。总体目标是使客户端和文件系统作为服务器以同样的速度来更新。文件的方法,参数和模型紧密集成到服务器端的代码,允许API来始终保持同步。Swagger 让部署管理和使用功能强大的API从未如此简单。
2.先看下代码结构:(需要配置我都圈上了)
在这里插入图片描述
3.maven依赖(pom.xml):
图片:
最重要的两个我已经圈出来了,剩下的可有可无
在这里插入图片描述
代码:

		<!-- swagger2核心依赖 -->
		  <dependency>
		      <groupId>io.springfox</groupId>
		      <artifactId>springfox-swagger2</artifactId>
		      <version>2.7.0</version>
		  </dependency>

		<!-- swagger-ui为项目提供api展示及测试的界面 -->
		  <dependency>
		      <groupId>io.springfox</groupId>
		      <artifactId>springfox-swagger-ui</artifactId>
		      <version>2.7.0</version>
		  </dependency>
		<!-- swagger-springmvc dependencies -->
			<dependency>
	             <groupId>com.fasterxml.jackson.core</groupId>
	             <artifactId>jackson-core</artifactId>
	             <version>2.7.5</version>
	       	</dependency>
	       	<dependency>
	             <groupId>com.fasterxml.jackson.core</groupId>
	             <artifactId>jackson-annotations</artifactId>
	             <version>2.7.5</version>
	       	</dependency>
	       	<dependency>
	             <groupId>com.fasterxml.jackson.core</groupId>
	             <artifactId>jackson-databind</artifactId>
	             <version>2.7.5</version>
	       	</dependency>
	       	<dependency>
	             <groupId>org.codehaus.jackson</groupId>
	             <artifactId>jackson-mapper-asl</artifactId>
	             <version>1.9.4</version>
	       </dependency>

4.创建swagger2 配置类:
图片:
在这里插入图片描述
代码:

package com.baidu.dept.controller;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.EnableWebMvc;

import springfox.documentation.builders.ApiInfoBuilder;
import springfox.documentation.builders.RequestHandlerSelectors;
import springfox.documentation.service.ApiInfo;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2;

@Configuration
@EnableWebMvc
@EnableSwagger2
@ComponentScan(basePackages="com.baidu.dept.controller") //需要扫描的包路径
public class SwaggerConfig {
	
	@Bean
    public Docket api() {
        return new Docket(DocumentationType.SWAGGER_2)
                .select()
                .apis(RequestHandlerSelectors.any())  //显示所有类
                //.apis(RequestHandlerSelectors.withClassAnnotation(Api.class))  //只显示添加@Api注解的类
                .build()
                .apiInfo(apiInfo());
    }

    private ApiInfo apiInfo() {
        return new ApiInfoBuilder()
                .title("开放接口API")  //粗标题
                .description("HTTP对外开放接口")   //描述
                .version("1.0.0")   //api version
                .termsOfServiceUrl("http://xxx.xxx.com")
                .license("LICENSE")   //链接名称
                .licenseUrl("http://xxx.xxx.com")   //链接地址
                .build();
    }

	
}

5.静态资源文件的配置:
图片:
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

地址:https://github.com/swagger-api/swagger-ui/tree/v2.2.1

需要修改的位置:
在这里插入图片描述
在这里插入图片描述
6.修改springmvc.xml:
图片:
在这里插入图片描述
代码:

<mvc:resources location="/swagger/**" mapping="/**" />

7.修改web.xml:
图片:
在这里插入图片描述
代码:

	<!-- Springmvc前端控制器扫描路径增加“/v2/api-docs”,用于扫描Swagger的 /v2/api-docs,否则 /v2/api-docs无法生效。 -->
	<servlet-mapping>
    	<servlet-name>springmvc</servlet-name>
    	<url-pattern>/v2/api-docs</url-pattern>
	</servlet-mapping>

8.controller测试类:
代码:

package com.baidu.dept.controller;

import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

import com.baidu.dept.serviceI.DeptServiceI;
import com.baidu.pojo.Dept;

import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiResponse;

@Controller
@RequestMapping("/dept")
@Api(tags = "人员接口",description="人员文档说明",hidden=true)
public class DeptController {

	@Autowired
	private DeptServiceI deptService;
	
	
	@RequestMapping("/findList.do")
	@ResponseBody
	@ApiOperation(value="查询所有的人员",notes="查询所有的人员接口说明")
	@ApiResponse(response=Dept.class, code = 200, message = "接口返回对象参数")
	public List<Dept> findList(){
		
		
		return deptService.findList();
	}
	
	
}


测试成功:
在这里插入图片描述

参考地址:https://blog.csdn.net/qq_38217237/article/details/84401117#commentBox

猜你喜欢

转载自blog.csdn.net/xxk666/article/details/84404276