swagger-bootstrap-ui的所有特性都会集中在knife4j-spring-ui包中,knife4j沿用swagger-bootstrap-ui的版本号,第1个版本从1.9.6开始,
1、springboot单服务架构
引入swagger依赖
<!--swagger依赖-->
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>2.9.2</version>
</dependency>
<dependency>
<groupId>com.github.xiaoymin</groupId>
<artifactId>knife4j-spring-boot-starter</artifactId>
<!--在引用时请在maven中央仓库搜索最新版本号-->
<version>2.0.2</version>
</dependency>
配置SwaggerConfig文件
import com.github.xiaoymin.knife4j.spring.annotations.EnableKnife4j;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Import;
import springfox.bean.validators.configuration.BeanValidatorPluginsConfiguration;
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;
/**
* swagger配置文件
* @author zhangjunchao
*/
@Configuration
@EnableSwagger2
@EnableKnife4j
@Import(BeanValidatorPluginsConfiguration.class)
public class SwaggerConfig {
// 后端调试栏,可根据需求设置pathMapping
@Bean("rest")
public Docket api4Rest() {
return new Docket(DocumentationType.SWAGGER_2).apiInfo(apiInfo()).groupName("后端调试").pathMapping("/").select().paths(PathSelectors.any()).build();
}
// @Bean("api")
// public Docket api() {
// return new Docket(DocumentationType.SWAGGER_2).apiInfo(apiInfo()).groupName("前端调试").pathMapping("/api").select().paths(PathSelectors.any()).apis(RequestHandlerSelectors.basePackage("com.hndfsj.app.bis")).build();
// }
// 小程序调试栏,可根据需求设置pathMapping
@Bean("wx")
public Docket api4Wx() {
return new Docket(DocumentationType.SWAGGER_2).apiInfo(apiInfo()).groupName("小程序调试").pathMapping("/api-miniapp").select().paths(PathSelectors.any()).apis(RequestHandlerSelectors.basePackage("com.hndfsj.app.miniapp")).build();
}
/**
* 根据项目进行设置
*/
private ApiInfo apiInfo() {
return new ApiInfoBuilder().title("区块链demo").version("1.0.0").
contact(new Contact("Mr.zjc", "www.hndfsj.com", "zhangjunchao@163.com")).
description("此项目是为区块链课程培训做的一个demo,开发环境下开启swagger便于调试和对接,生产环境下关闭swagger。").build();
}
}
使用方法
/**
* TODO:第一个链
*
* @author zhangjunchao
* @date 2019/12/5
*/
@Api(tags = "区块") // swagger分组
@RestController
public class FirstChain {
@ApiOperationSupport(author = "zhangjunchao") // 作者信息,可填写邮箱或者姓名
@ApiOperation("清空区块链") // 方法说明
@GetMapping("cleanBlock")
public String cleanBlock(){
blockchain.clear();
System.out.println("清除区块链成功!");
return "清除区块链成功!";
}
}
ssm架构依赖
<dependency>
<groupId>com.github.xiaoymin</groupId>
<artifactId>knife4j-spring-ui</artifactId>
<version>2.0.2</version>
</dependency>
<dependency>
<groupId>com.github.xiaoymin</groupId>
<artifactId>knife4j-spring</artifactId>
<version>2.0.2</version>
</dependency>
<dependency>
<groupId>com.github.xiaoymin</groupId>
<artifactId>knife4j-annotations</artifactId>
<version>2.0.2</version>
</dependency>
<dependency>
<groupId>com.github.xiaoymin</groupId>
<artifactId>knife4j-dependencies</artifactId>
<version>2.0.2</version>
</dependency>
<!--swagger依赖-->
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>2.9.2</version>
</dependency>
2、Spring Cloud微服务架构
在微服务架构下,引入微服务的starter
<dependency>
<groupId>com.github.xiaoymin</groupId>
<artifactId>knife4j-micro-spring-boot-starter</artifactId>
<!--在引用时请在maven中央仓库搜索最新版本号-->
<version>2.0.2</version>
</dependency>
版权声明:本文为weixin_43329834原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。