0.Spring MVC配置文件中的配置
- <!--?設置使用注解的類所在的jar包,只加載controller類?-->??
- <span?style="white-space:pre">????</span><context:component-scan?base-package="com.jay.plat.config.controller"?/>???
- <!--?使用?Swagger?Restful?API文檔時,添加此注解?-->??
- ????<mvc:default-servlet-handler?/>??
1.maven依賴
- <!--?構建Restful?API?-->??
- ??????????
- ????????<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>??
2.Swagger配置文件
- package?com.jay.plat.config.util;??
- ??
- 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?org.springframework.web.servlet.config.annotation.WebMvcConfigurationSupport;??
- ??
- ??
- import?springfox.documentation.builders.ApiInfoBuilder;??
- import?springfox.documentation.builders.PathSelectors;??
- 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;??
- /*?
- ?*?Restful?API?訪問路徑:?
- ?*?http://IP:port/{context-path}/swagger-ui.html?
- ?*?eg:http://localhost:8080/jd-config-web/swagger-ui.html?
- ?*/??
- @EnableWebMvc??
- @EnableSwagger2??
- @ComponentScan(basePackages?=?{"com.<span?style="font-family:Arial,?Helvetica,?sans-serif;">jay.</span>plat.config.controller"})??
- @Configuration??
- public?class?RestApiConfig?extends?WebMvcConfigurationSupport{??
- ??
- ????@Bean??
- ????public?Docket?createRestApi()?{??
- ????????return?new?Docket(DocumentationType.SWAGGER_2)??
- ????????????????.apiInfo(apiInfo())??
- ????????????????.select()??
- ????????????????.apis(RequestHandlerSelectors.basePackage("com.jay.plat.config.controller"))??
- ????????????????.paths(PathSelectors.any())??
- ????????????????.build();??
- ????}??
- ??
- ????private?ApiInfo?apiInfo()?{??
- ????????return?new?ApiInfoBuilder()??
- ????????????????.title("Spring?中使用Swagger2構建RESTful?APIs")??
- ????????????????.termsOfServiceUrl("http://blog.csdn.net/he90227")??
- ????????????????.contact("逍遙飛鶴")??
- ????????????????.version("1.1")??
- ????????????????.build();??
- ????}??
- }??
配置說明:
? ? ? ? ? ??
- @Configuration?配置注解,自動在本類上下文加載一些環境變量信息??
- @EnableWebMvc???
- @EnableSwagger2?使swagger2生效??
- @ComponentScan("com.myapp.packages")?需要掃描的包路徑??
3.Controller中使用注解添加API文檔
- package?com.jay.spring.boot.demo10.swagger2.controller;??
- ??
- import?java.util.ArrayList;??
- import?java.util.Collections;??
- import?java.util.HashMap;??
- import?java.util.List;??
- import?java.util.Map;??
- ??
- import?org.springframework.web.bind.annotation.PathVariable;??
- import?org.springframework.web.bind.annotation.RequestBody;??
- import?org.springframework.web.bind.annotation.RequestMapping;??
- import?org.springframework.web.bind.annotation.RequestMethod;??
- import?org.springframework.web.bind.annotation.RestController;??
- ??
- import?com.jay.spring.boot.demo10.swagger2.bean.User;??
- ??
- import?io.swagger.annotations.ApiImplicitParam;??
- import?io.swagger.annotations.ApiImplicitParams;??
- import?io.swagger.annotations.ApiOperation;??
- ??
- @RestController??
- @RequestMapping(value?=?"/users")?//?通過這里配置使下面的映射都在/users下,可去除??
- public?class?UserController?{??
- ??
- ????static?Map<Long,?User>?users?=?Collections.synchronizedMap(new?HashMap<Long,?User>());??
- ??
- ????@ApiOperation(value?=?"獲取用戶列表",?notes?=?"")??
- ????@RequestMapping(value?=?{?""?},?method?=?RequestMethod.GET)??
- ????public?List<User>?getUserList()?{??
- ????????List<User>?r?=?new?ArrayList<User>(users.values());??
- ????????return?r;??
- ????}??
- ??
- ????@ApiOperation(value?=?"創建用戶",?notes?=?"根據User對象創建用戶")??
- ????@ApiImplicitParam(name?=?"user",?value?=?"用戶詳細實體user",?required?=?true,?dataType?=?"User")??
- ????@RequestMapping(value?=?"",?method?=?RequestMethod.POST)??
- ????public?String?postUser(@RequestBody?User?user)?{??
- ????????users.put(user.getId(),?user);??
- ????????return?"success";??
- ????}??
- ??
- ????@ApiOperation(value?=?"獲取用戶詳細信息",?notes?=?"根據url的id來獲取用戶詳細信息")??
- ????@ApiImplicitParam(name?=?"id",?value?=?"用戶ID",?required?=?true,?dataType?=?"Long")??
- ????@RequestMapping(value?=?"/{id}",?method?=?RequestMethod.GET)??
- ????public?User?getUser(@PathVariable?Long?id)?{??
- ????????return?users.get(id);??
- ????}??
- ??
- ????@ApiOperation(value?=?"更新用戶詳細信息",?notes?=?"根據url的id來指定更新對象,并根據傳過來的user信息來更新用戶詳細信息")??
- ????@ApiImplicitParams({?@ApiImplicitParam(name?=?"id",?value?=?"用戶ID",?required?=?true,?dataType?=?"Long"),??
- ????????????@ApiImplicitParam(name?=?"user",?value?=?"用戶詳細實體user",?required?=?true,?dataType?=?"User")?})??
- ????@RequestMapping(value?=?"/{id}",?method?=?RequestMethod.PUT)??
- ????public?String?putUser(@PathVariable?Long?id,?@RequestBody?User?user)?{??
- ????????User?u?=?users.get(id);??
- ????????u.setName(user.getName());??
- ????????u.setAge(user.getAge());??
- ????????users.put(id,?u);??
- ????????return?"success";??
- ????}??
- ??
- ????@ApiOperation(value?=?"刪除用戶",?notes?=?"根據url的id來指定刪除對象")??
- ????@ApiImplicitParam(name?=?"id",?value?=?"用戶ID",?required?=?true,?dataType?=?"Long")??
- ????@RequestMapping(value?=?"/{id}",?method?=?RequestMethod.DELETE)??
- ????public?String?deleteUser(@PathVariable?Long?id)?{??
- ????????users.remove(id);??
- ????????return?"success";??
- ????}??
- ??
- }??
4.效果展示
訪問路徑:
- Restful?API?訪問路徑:??
- ?*?http://IP:port/{context-path}/swagger-ui.html??
- ?*?eg:http://localhost:8080/jd-config-web/swagger-ui.html??

參考:
http://www.cnblogs.com/yuananyun/p/4993426.html
http://www.jianshu.com/p/8033ef83a8ed