SpringMVC整合kinfe4j及问题解决分析

 更新时间:2023年09月12日 11:19:23   作者:不减30斤不改名_TC  
这篇文章主要为大家介绍了SpringMVC整合kinfe4j及问题解决分析,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪

引言

以前的SpringMVC代码都是使用showdoc来记录接口文档,正好这次开启一个新项目,准备整合进swagger,以免编写接口文档的痛苦。而前段时间又正好看到很多人使用kinfe4j来替换swagger的文章,索性一步到位用上了kinfe4j。

整合的步骤

现在的项目都是用Spring Boot框架的比较多,而Spring Boot整合kinfe4j网上的文章也比较多,而且相对比较容易,而随着时间的推移,SpringMVC用的越来越少,相对而言资料也越来越少。这次整合也耗费了我半天的时间,下面记录一下整合的步骤及需要注意的问题。

首先导入maven

<dependency>
      <groupId>io.swagger</groupId>
      <artifactId>swagger-models</artifactId>
      <version>1.5.21</version>
    </dependency>
    <dependency>
      <groupId>io.springfox</groupId>
      <artifactId>springfox-swagger-ui</artifactId>
      <version>2.9.2</version>
    </dependency>
    <dependency>
      <groupId>io.springfox</groupId>
      <artifactId>springfox-swagger2</artifactId>
      <version>2.9.2</version>
        <exclusions>
            <exclusion>
                <groupId>io.swagger</groupId>
                <artifactId>swagger-models</artifactId>
            </exclusion>
        </exclusions>
    </dependency>
    <dependency>
      <groupId>com.github.xiaoymin</groupId>
      <artifactId>swagger-bootstrap-ui</artifactId>
      <version>1.9.3</version>
    </dependency>
    <dependency>
      <groupId>io.springfox</groupId>
      <artifactId>springfox-bean-validators</artifactId>
      <version>2.9.2</version>
    </dependency>
    <dependency>
      <groupId>javax.validation</groupId>
      <artifactId>validation-api</artifactId>
      <version>1.1.0.Final</version>
    </dependency>

第二步,编写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的注册:

<bean id="SwaggerConfig" class="xxx.sys.controller.config.SwaggerConfig" />
接下来在web.xml中进行配置:
```xml
<filter>
    <filter-name>swaggerProductionFilter</filter-name>
    <filter-class>com.github.xiaoymin.swaggerbootstrapui.filter.ProductionSecurityFilter</filter-class>
    <init-param>
      <param-name>production</param-name>
      <param-value>false</param-value>
    </init-param>
  </filter>
  <filter-mapping>
    <filter-name>swaggerProductionFilter</filter-name>
    <url-pattern>/*</url-pattern>
  </filter-mapping>
  <!--Swagger资源的Basic认证保护策略-->
  <filter>
    <filter-name>swaggerSecurityBasic</filter-name>
    <filter-class>com.github.xiaoymin.swaggerbootstrapui.filter.SecurityBasicAuthFilter</filter-class>
    <!--开启basic认证-->
    <init-param>
      <param-name>enableBasicAuth</param-name>
      <param-value>true</param-value>
    </init-param>
    <!--用户名&密码-->
    <init-param>
      <param-name>userName</param-name>
      <param-value>123</param-value>
    </init-param>
    <init-param>
      <param-name>password</param-name>
      <param-value>123</param-value>
    </init-param>
  </filter>
  <filter-mapping>
    <filter-name>swaggerSecurityBasic</filter-name>
    <url-pattern>/swagger/*</url-pattern>
  </filter-mapping>

这个时候启动,如果访问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用到的静态文件权限放开:

<bean id="shiroFilter" class="org.apache.shiro.spring.web.ShiroFilterFactoryBean">
        <property name="securityManager" ref="securityManager"/>
        <property name="loginUrl" value="/login"/>
        <property name="successUrl" value="/"/>
        <property name="unauthorizedUrl" value="/login"/>
        <property name="filterChainDefinitions">
            <value>
                /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
            </value>
        </property>
        <property name="filters">
            <map>
                <entry key="authc" value-ref="formAuthenticationFilter"/>
            </map>
        </property>
    </bean>

其他类似的权限校验的组件也是同样的操作,不再赘述。至此,整合完成。

在实体类,和接口类配置好相关的注解后,访问:

以上就是SpringMVC整合kinfe4j及问题解决分析的详细内容,更多关于SpringMVC整合kinfe4j的资料请关注脚本之家其它相关文章!

相关文章

  • Springmvc请求参数类型转换器及原生api代码实例

    Springmvc请求参数类型转换器及原生api代码实例

    这篇文章主要介绍了Springmvc请求参数类型转换器及原生api代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-10-10
  • Spring Bean 中的生命周期和获取方式详解

    Spring Bean 中的生命周期和获取方式详解

    Bean的加载和获取过程涉及配置文件解析、资源加载、XML解析和BeanDefinition注册等步骤,本文给大家介绍Spring Bean 的生命周期和获取方式,感兴趣的朋友跟随小编一起看看吧
    2024-12-12
  • IDEA Maven Mybatis generator 自动生成代码(实例讲解)

    IDEA Maven Mybatis generator 自动生成代码(实例讲解)

    下面小编就为大家分享一篇IDEA Maven Mybatis generator 自动生成代码的实例讲解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2017-12-12
  • spring boot 不连接数据库启动的解决

    spring boot 不连接数据库启动的解决

    这篇文章主要介绍了spring boot 不连接数据库启动的解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-08-08
  • Jmeter post上传文件实现过程详解

    Jmeter post上传文件实现过程详解

    这篇文章主要介绍了Jmeter post上传文件实现过程详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-08-08
  • 详解Spring简单容器中的Bean基本加载过程

    详解Spring简单容器中的Bean基本加载过程

    本篇将对定义在 XMl 文件中的 bean,从静态的的定义到变成可以使用的对象的过程,即 bean 的加载和获取的过程进行一个整体的了解
    2017-05-05
  • java实现简单扫雷游戏

    java实现简单扫雷游戏

    这篇文章主要为大家详细介绍了java实现简单扫雷游戏,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-04-04
  • Java SpringBoot整合shiro-spring-boot-starterqi项目报错解决

    Java SpringBoot整合shiro-spring-boot-starterqi项目报错解决

    这篇文章主要介绍了Java SpringBoot整合shiro-spring-boot-starterqi项目报错解决,文章围绕主题展开详细的内容介绍,具有一定的参考一下
    2022-08-08
  • ConstraintValidator类如何实现自定义注解校验前端传参

    ConstraintValidator类如何实现自定义注解校验前端传参

    这篇文章主要介绍了ConstraintValidator类实现自定义注解校验前端传参的操作,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-06-06
  • Java实现多数据源的几种方式总结

    Java实现多数据源的几种方式总结

    这篇文章主要给大家总结介绍了关于Java实现多数据源的几种方式,最近项目中的工作流需要查询多个数据源的数据,数据源可能是不同种类的,需要的朋友可以参考下
    2023-08-08

最新评论