1、在pom文件引入相关jar(注意springboot与swagger的版本)
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>2.2.2</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>2.2.2</version>
</dependency>
2、在application类的同级路径添加swagger配置类
package com.yu.theone;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
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;
@Configuration
@EnableSwagger2
public class Swagger2 {
@Bean
public Docket createRestApi() {
return new Docket(DocumentationType.SWAGGER_2)
.apiInfo(apiInfo())
.select()
.apis(RequestHandlerSelectors.basePackage("com.yu.theone.controller"))// controller所在路径
.paths(PathSelectors.any())
.build();
}
private ApiInfo apiInfo() {
return new ApiInfoBuilder()
.title("Spring Boot中使用Swagger2构建RESTful APIs")
.description("更多Spring Boot相关文章请关注:http://baidu.com/")
.termsOfServiceUrl("http://baidu.com/")
.contact("Y")
.version("1.0")
.build();
}
}
3、在controller类中添加注解
package com.yu.theone.controller;
import com.yu.theone.entity.theUser;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestController;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
/**
* Created by shuwei.yu.
* on 2019/4/4.
*/
@RestController
@RequestMapping("/yu")
@Api(tags = "类标识1",value = "类标识2")
public class oneController {
// @RequestMapping("/te")// 如果用swagger2 用@RequestMapping注解 ,默认所有请求通用,改成GetMapping或者PutMapping即可
@GetMapping("/te")
@ApiOperation(value = "方法标识" ,notes = "方法描述")
public String test(){
return new theUser().toString();
}
public static void main(String[] args) {
List<Integer> list1 = new ArrayList<Integer>() {{add(0); add(-1);}};
List<Integer> list2 = new ArrayList<Integer>(Arrays.asList(2, 4, -9));
list1.addAll(list2);
System.out.println(list1);
list2.set(0, 100000);
System.out.println(list1);//深复制
System.out.println(list2);
//功能性展示
Collections.addAll(list2, 34, 67, 78);
System.out.println(list2);
list2.addAll(Arrays.asList(34, 67, 78));
System.out.println(list2);
System.out.println();
}
}
还可以添加models模型,对实体等进行标注
package com.example.demo.result.methodResult;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.omg.CORBA.PUBLIC_MEMBER;
/**
* @ProjectName: demo
* @Package: com.example.demo.result.methodResult
* @ClassName: Msg
* @Author: yu
* @Description: 方法返回类型
* @Date: 2020/5/9 13:55
* @Version: 1.0
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
/**
* 在swagger页面添加models模块,可以用来标注实体结构等
*/
@ApiModel(description = "返回结构")
public class Msg<T> {
@ApiModelProperty("返回码")
private String code;
@ApiModelProperty("调用信息")
private String message;
@ApiModelProperty("返回实体")
private T t;
/**
* @Method
* @Author yu
* @Version 1.0
* @Description 成功调用方法
* @param
* @Return
* @Exception
* @Date 2020/5/9
*/
public static <T> Msg<T> ok(T t){
return new Msg("200","访问成功",t);
}
public static <T> Msg<T> error(T t){
return new Msg("400","访问失败",t);
}
public static <T> Msg<T> exception(T t){
return new Msg("444","访问异常",t);
}
}
4、默认静态访问路径:http://localhost:8080/swagger-ui.html#/