java-spring项目集成swagger2-knife4j

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版权协议,转载请附上原文出处链接和本声明。