1.下载swagger的版本:
springfox-swagger2(2.4)springfox-swagger-ui (2.4) jdk.1.8
2.配置pom.xml spring使用4.1.7的版本
<!--START ======= Swagger所需要的依赖包======= START-->
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>2.4.0</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>2.4.0</version>
</dependency>
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
<version>19.0</version>
</dependency>
<dependency>
<groupId>org.mapstruct</groupId>
<artifactId>mapstruct-jdk8</artifactId>
<version>1.1.0.Final</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-core</artifactId>
<version>2.8.7</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.8.7</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-annotations</artifactId>
<version>2.8.7</version>
</dependency>
<!--END ======= Swagger所需要的依赖包======= END-->
3.配置spring-server.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xmlns:p="http://www.springframework.org/schema/p"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd
http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc.xsd">
<!-- 自动扫描 @Controller 与 swagger.java -->
<context:component-scan base-package="cn.appsys.swagger"/>
<context:component-scan base-package="cn.appsys.controller"/>
<!-- 处理静态资源-->
<mvc:default-servlet-handler />
</beans>
4.配置swaggerconfig文件
package cn.appsys.swagger;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.EnableWebMvc;
import springfox.documentation.builders.ApiInfoBuilder;
import springfox.documentation.builders.PathSelectors;
import springfox.documentation.builders.RequestHandlerSelectors;
import springfox.documentation.service.ApiInfo;
import springfox.documentation.service.Contact;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2;
/**
* @author kevin on 2019/1/18
*/
@Configuration
@EnableSwagger2
@EnableWebMvc
public class SwaggerConfig {
@Bean
public Docket api() {
/* return new Docket(DocumentationType.SWAGGER_2)
.select()
.apis(RequestHandlerSelectors.any())
.build()
.apiInfo(apiInfo());*/
return new Docket(DocumentationType.SWAGGER_2)
.apiInfo(apiInfo())
.select()
.apis(RequestHandlerSelectors.basePackage("cn.appsys.controller.swagger_controller"))
.paths(PathSelectors.any())
.build();
}
private ApiInfo apiInfo() {
return new ApiInfoBuilder()
.title("Kevin集成swagger的接口测试")
.description("古之立大事者,不惟有超世之才,亦必有坚忍不拔之志!")
.termsOfServiceUrl("http://localhost:8070/app")
.contact(new Contact("人才项目组", "http://localhost:8070", "492305465@qq.com"))
.version("1.0.0")
.build();
}
}
5.编写controller
package cn.appsys.controller.swagger_controller;
import cn.appsys.pojo.*;
import cn.appsys.service.developer.AppCategoryService;
import cn.appsys.service.developer.AppInfoService;
import cn.appsys.service.developer.AppVersionService;
import cn.appsys.service.developer.DataDictionaryService;
import cn.appsys.tools.Constants;
import cn.appsys.tools.PageSupport;
import com.alibaba.fastjson.JSONArray;
import com.mysql.jdbc.StringUtils;
import io.swagger.annotations.*;
import org.apache.commons.io.FilenameUtils;
import org.apache.log4j.Logger;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
import java.io.File;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
@Controller
@RequestMapping(value="/api/appinfo")
@Api(value="API",basePath = "/http://127.0.0.1/app/api/appinfo")
public class SwaggerAppController {
private Logger logger = Logger.getLogger(SwaggerAppController.class);
@Resource
private AppInfoService appInfoService;
/**
* 判断APKName是否唯一
* @param apkName
* @return
*/
@ApiOperation(value = "查询apkname是否存在", notes = "根据apkname查询appinfo表中是否存在数据")
//@ApiImplicitParam(name = "APKName", value = "apk名称", required = true, dataType = "String")
@ResponseBody
@RequestMapping(value="/apkexist",method=RequestMethod.GET)
public Object apkNameIsExit(@ApiParam(required=true,value="apk名称",name="APKName")@RequestParam(value="APKName") String APKName){
HashMap<String, String> resultMap = new HashMap<String, String>();
if(StringUtils.isNullOrEmpty(APKName)){
resultMap.put("APKName", "empty");
}else{
AppInfo appInfo = null;
try {
appInfo = appInfoService.getAppInfo(null, APKName);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
if(null != appInfo)
resultMap.put("APKName", "exist");
else
resultMap.put("APKName", "noexist");
}
return JSONArray.toJSONString(resultMap);
}
}
6.http://localhost:8070/app/swagger-ui.html 浏览器输入地址