springboot配置swagger
swagger的基本使用
·
一、基本使用,使用默认配置
1、导入pom依赖,这里需要注意,swagger与springboot的版本需要对应,springboot2.5.6与swagger2.9.2版本是匹配的,不然会报
“Failed to start bean ‘documentationPluginsBootstrapper‘; nested exception is java.lang.NullPoi”
<!-- https://mvnrepository.com/artifact/io.springfox/springfox-swagger-ui -->
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>2.9.2</version>
</dependency>
<!-- https://mvnrepository.com/artifact/io.springfox/springfox-swagger2 -->
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>2.9.2</version>
</dependency>
2、自定义swagger配置类
@Configuration
@EnableSwagger2
public class SwaggerConfig {
}
3、写个Controller
@RestController
public class TestController {
@RequestMapping("/test")
public String test(){
return "success";
}
}
4、进入页面:ip地址:端口号/swagger-ui.html
二、自定义配置
1、上面写的配置类内容什么都没有写,启动的都是默认的配置,下面自定义配置
@Configuration
@EnableSwagger2
public class SwaggerConfig {
@Bean
public Docket docket(Environment environment){
//指定在dev/test环境下使用swagger
Profiles profiles = Profiles.of("dev","test");
System.out.println(profiles);
boolean flag = environment.acceptsProfiles(profiles);
return new Docket(DocumentationType.SWAGGER_2)
.apiInfo(apiInfo())
.enable(flag)//关闭swagger,默认是true
.select()
//RequestHandlerSelectors:配置要扫描的方式,有basePackage("路径")、any():扫描全部,none():全部不扫描
//RequestHandlerSelectors.withMethodAnnotation():扫描方法上的注解
//.withClassAnnotation():扫描类上的注解
.apis(RequestHandlerSelectors .basePackage("com.example.demo.controller"))//指定扫描的包
.paths(PathSelectors.ant("/hello/**"))//设置请求路径,这里是带有hello的请求路径
.build()
;
}
private ApiInfo apiInfo(){
Contact contact = new Contact("单俞浩", "https://blog.csdn.net/weixin_44975592", "724629505@qq.com");
return new ApiInfo(
"单俞浩的Api",
"Api Documentation",
"v1.0",
"https://blog.csdn.net/weixin_44975592",
contact,
"Apache 2.0",
"http://www.apache.org/licenses/LICENSE-2.0",
new ArrayList()
);
}
}
2、配置环境
application.properties
spring.profiles.active=pro
环境指定为pro,所以swagger不会执行
三、分组和注解
1、分组还是同样在配置类上进行,这样子就可以配置不同需求了
2、注解:常用注解有@ApiModel(“ ”)、@Api(“ ”)、@ApiOperation(" "),主要也就是起到注释作用,在swagger也会显示相对应的注释
@ApiModel("用户类")
@Data
@RedisHash("persons")
public class Person {
@Id
private String id;
@Indexed //二级索引
private String firstname;
@Indexed
private String lastname;
private Address address;
}
@ApiOperation("测试接口")
@RestController
public class TestController {
@RequestMapping("/test")
public String test(){
return "success";
}
@ApiOperation("测试用户接口")
@PostMapping("/hello")
public Person hello(Person person){
return person;
}
}
效果图
更多推荐
已为社区贡献1条内容
所有评论(0)