springboot整合swagger和knife4j

在整合swagger文档的时候,我觉得swagger的原生界面不是很友好,就去用了knife4j
刚开始的时候,直接引入


            com.github.xiaoymin
            knife4j-spring-boot-starter
            3.0.2
  

没有另外加swagger的maven包,然后在拦截器处放开了doc,html的拦截
启动的时候,是可以打开http://localhost:8080/doc.html这个界面,可是界面处不显示接口文档,在访问界面的时候,直接不进登录拦截了,所以判断可能是knife4j整合的有问题
后面搜索了一下,引入了swagger的包,并且调整knife4j的版本。就可以同时使用swagger和knife4j

       
            io.springfox
            springfox-swagger2
            2.9.2
        
        
            io.springfox
            springfox-swagger-ui
            2.9.2
        

        
            com.github.xiaoymin
            knife4j-spring-boot-starter
            2.0.4
        

贴上config的配置

package com.imooc.mall.config;

import com.github.xiaoymin.knife4j.spring.annotations.EnableKnife4j;
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.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2;

@Configuration
@EnableSwagger2
@EnableKnife4j
public class SwaggerConfig {
    @Bean(value = "createRestApi")
    public Docket createRestApi() {
        return new Docket(DocumentationType.SWAGGER_2)
                .pathMapping("/")
                .select()
                .apis(RequestHandlerSelectors.basePackage("com.imooc.mall.controller"))
                .paths(PathSelectors.any())
                .build().apiInfo(new ApiInfoBuilder()
                        .title("SpringBoot整合Swagger")
                        .description("SpringBoot整合Swagger")
                        .termsOfServiceUrl("http://localhost:8080/")
                        .build());
    }
}

拦截器的配置

package com.imooc.mall;

import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;

/**
 * updated by hsoluo
 */
@Configuration
public class InterceptorConfig implements WebMvcConfigurer {


    @Override
    public void addInterceptors(InterceptorRegistry registry) {
        registry.addInterceptor(new UserLoginInterceptor())
                .addPathPatterns("/**")
                .excludePathPatterns("/error", "/user/login", "/user/register", "/categories", "/products", "/products/*", "/swagger-resources/**", "/webjars/**", "/v2/**", "/swagger-ui.html/**",
                        "/api", "/api-docs", "/api-docs/**", "/service-worker.js/**", "/doc.html/**");
        //写好的拦截器需要通过这里添加注册才能生效 updated by hsoluo 20210125
        WebMvcConfigurer.super.addInterceptors(registry);
    }

}

你可能感兴趣的:(java)