- swagger2
- 简介
- 使用
- 导包
- 编写配置类
- 配置基本显示的信息
- 配置扫描接口
- 配置是否开启
- 开发环境关闭,测试环境开启
- 分组
- 文档中的models
- 给swagger-ui文档添加注释
皆来自“狂神说Java”
swagger3有较大的变化
csdn-vip-详细版:https://blog.csdn.net/qq_15973399/article/details/107436089
免费-简易版:https://www.it610.com/article/1291227893636079616.htm
一个看源码的过程,源码里什么都有,缺什么补什么
导包编写配置类io.springfox springfox-swagger2 2.9.2 io.springfox springfox-swagger-ui 2.9.2
@Configuration
@EnableSwagger2 // 开启swagger2
public class SwaggerConfig {
}
测试
@Configuration
@EnableSwagger2 // 开启swagger2
public class SwaggerConfig {
@Bean
public Docket docket(){
return new Docket(documentationType.SWAGGER_2)
.apiInfo(
new ApiInfo(
"czc的Swagger日志", // 标题
"Api documentation", // 描述
"1.0",
"urn:tos", // 团队网站连接
// 作者信息
new Contact("czc", "http://localhost:8080", "1299973511@qq.com"),
"Apache 2.0",
"http://www.apache.org/licenses/LICENSE-2.0",
new ArrayList()
)
);
}
}
配置扫描接口
.select()
// select后一定要用build// 指定要扫描的controller
// basePackage:指定扫描的包
// any: 扫描所有
// none: 不扫描
// withClassAnnotation: 扫描类上的注解,参数为 通过反射得到注解的类
// withMethodAnnotation: 扫描方法上的注解
.apis(RequestHandlerSelectors.basePackage(“com.czc.controller”))
// 过滤路径–PathSelectors
.paths(PathSelectors.ant("/czc"))
.build()
@Configuration
@EnableSwagger2 // 开启swagger2
public class SwaggerConfig {
@Bean
public Docket docket(){
return new Docket(documentationType.SWAGGER_2)
.apiInfo(
new ApiInfo(
"czc的Swagger日志", // 标题
"Api documentation", // 描述
"1.0",
"urn:tos", // 团队网站连接
// 作者信息
new Contact("czc", "http://localhost:8080", "1299973511@qq.com"),
"Apache 2.0",
"http://www.apache.org/licenses/LICENSE-2.0",
new ArrayList()
)
)
.select()
// select后一定要用build
// 指定要扫描的controller
// basePackage:指定扫描的包
// any: 扫描所有
// none: 不扫描
// withClassAnnotation: 扫描类上的注解,参数为 通过反射得到注解的类
// withMethodAnnotation: 扫描方法上的注解
.apis(RequestHandlerSelectors.basePackage("com.czc.controller"))
// 过滤路径--PathSelectors
.paths(PathSelectors.ant("/czc"))
.build()
;
}
}
配置是否开启
开发环境关闭,测试环境开启.enable(false) // 默认为true,即默认开启
需要 Environment 参数 得到当前环境
@Bean
public Docket docket(Environment environment){
// 通过Profiles类中的of方法得到其对象,传入需要判断的环境名
// 注意包的路径 org.springframework.core.env.Profiles;
Profiles profiles = Profiles.of("dev","test");
// 监听判断当前环境,需要参数Profiles
boolean flag = environment.acceptsProfiles(profiles);
application中选择环境
spring.profiles.active=dev
.groupName(“czc”)
多个分组:在配置类中,注册多个Docket到bean中
@Bean
public Docket docket1(){
return new Docket(documentationType.SWAGGER_2).groupName("aaa");
}
@Bean
public Docket docket(Environment environment){
文档中的models
当controller中的方法返回值为一个实体类时,
就会被swagger扫描到,然后放到models中
@GetMapping("/user1")
public User user1(){
return new User();
}
给swagger-ui文档添加注释
@ApiModel() ---------------- 作用在实体类上
@ApiModelProperty() --------------------- 作用在实体类的属性上
@ApiOperation() -------------------- 作用在controller中的方法上
@ApiParam() -------------------- 作用在方法中的参数上
@ApiModel("用户类")
public class User {
@ApiModelProperty("用户名")
public String username;
public String password;
}
=========================================================
@ApiOperation("这是user1方法")
@GetMapping("/user1")
public User user1(){
return new User();
}
@GetMapping(value = "/user2")
public String user2(@ApiParam("参数")String username){
return username;
}



