SpringMVC整合kinfe4j以及问题解决

    以前的SpringMVC代码都是使用showdoc来记录接口文档,正好这次开启一个新项目,准备整合进swagger,以免编写接口文档的痛苦。而前段时间又正好看到很多人使用kinfe4j来替换swagger的文章,索性一步到位用上了kinfe4j。
    现在的项目都是用Spring Boot框架的比较多,而Spring Boot整合kinfe4j网上的文章也比较多,而且相对比较容易,而随着时间的推移,SpringMVC用的越来越少,相对而言资料也越来越少。这次整合也耗费了我半天的时间,下面记录一下整合的步骤及需要注意的问题。

首先导入maven:


      io.swagger
      swagger-models
      1.5.21
    
    
      io.springfox
      springfox-swagger-ui
      2.9.2
    
    
      io.springfox
      springfox-swagger2
      2.9.2
        
            
                io.swagger
                swagger-models
            
        
    
    
      com.github.xiaoymin
      swagger-bootstrap-ui
      1.9.3
    
    
      io.springfox
      springfox-bean-validators
      2.9.2
    
    
      javax.validation
      validation-api
      1.1.0.Final
    

第二步,编写config文件:

@EnableSwagger2
@EnableSwaggerBootstrapUI
@Import(BeanValidatorPluginsConfiguration.class)
@EnableWebMvc
public class SwaggerConfig extends WebMvcConfigurerAdapter {

    public Docket defaultApi(){
        Docket docket = new Docket(DocumentationType.SWAGGER_2)
            .apiInfo(apiInfo())
            .groupName("2.x 版本")
            .select()
            .apis(RequestHandlerSelectors.basePackage("com.ruida.cloud.sys.controller"))
            .paths(PathSelectors.any())
            .build();
        return docket;
    }

    private ApiInfo apiInfo() {
        return new ApiInfoBuilder().title("管理后台接口文档")
                .description("管理后台接口文档")
                .termsOfServiceUrl("http://localhost:8090/swagger/doc.html")
                .version("1.0.0")
                .build();
    }
}

这些配置都比较简单。
第三步spring-mvc.xml文件中,进行bean的注册:


接下来在web.xml中进行配置:
```xml

    swaggerProductionFilter
    com.github.xiaoymin.swaggerbootstrapui.filter.ProductionSecurityFilter
    
      production
      false
    
  
  
    swaggerProductionFilter
    /*
  
  
  
    swaggerSecurityBasic
    com.github.xiaoymin.swaggerbootstrapui.filter.SecurityBasicAuthFilter
    
    
      enableBasicAuth
      true
    
    
    
      userName
      123
    
    
      password
      123
    
  
  
    swaggerSecurityBasic
    /swagger/*
  

这个时候启动,如果访问xxx/doc.html显示404,需要配置静态资源映射路径,这边在config里面一并完成,继承WebMvcConfigurerAdapter,重写下面的方法:

 @Override
    public void addResourceHandlers(ResourceHandlerRegistry registry) {
        registry.addResourceHandler("/static/**").addResourceLocations("classpath:/static/");
        registry.addResourceHandler("/swagger-ui.html").addResourceLocations("classpath:/META-INF/resources/");
        registry.addResourceHandler("/webjars/**").addResourceLocations("classpath:/META-INF/resources/webjars/");
    }

还有一点需要注意的:如果配置了shiro等权限的话,需要将kinfe4j用到的静态文件权限放开:


        
        
        
        
        
            
                /captcha = anon
                /login = authc
                /logout = logout
                /uploadFile = user
                /swagger-ui.html = anon
                /doc.html = anon
                /swagger-resources/** = anon
                /v2/** = anon
                /static/** = anon
                /webjars/** = anon
                /** = user
            
        

        
            
                
            
        
    

其他类似的权限校验的组件也是同样的操作,不再赘述。至此,整合完成。
在实体类,和接口类配置好相关的注解后,访问:


微信图片_20200617012715.png

你可能感兴趣的:(SpringMVC整合kinfe4j以及问题解决)