欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

SpringMVC整合kinfe4j及問題解決分析

 更新時間:2023年09月12日 11:19:23   作者:不減30斤不改名_TC  
這篇文章主要為大家介紹了SpringMVC整合kinfe4j及問題解決分析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪

引言

以前的SpringMVC代碼都是使用showdoc來記錄接口文檔,正好這次開啟一個新項目,準備整合進swagger,以免編寫接口文檔的痛苦。而前段時間又正好看到很多人使用kinfe4j來替換swagger的文章,索性一步到位用上了kinfe4j。

整合的步驟

現(xiàn)在的項目都是用Spring Boot框架的比較多,而Spring Boot整合kinfe4j網(wǎng)上的文章也比較多,而且相對比較容易,而隨著時間的推移,SpringMVC用的越來越少,相對而言資料也越來越少。這次整合也耗費了我半天的時間,下面記錄一下整合的步驟及需要注意的問題。

首先導(dǎo)入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,需要配置靜態(tài)資源映射路徑,這邊在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等權(quán)限的話,需要將kinfe4j用到的靜態(tài)文件權(quán)限放開:

<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>

其他類似的權(quán)限校驗的組件也是同樣的操作,不再贅述。至此,整合完成。

在實體類,和接口類配置好相關(guān)的注解后,訪問:

以上就是SpringMVC整合kinfe4j及問題解決分析的詳細內(nèi)容,更多關(guān)于SpringMVC整合kinfe4j的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • Spring整合Mybatis方式之注冊映射器

    Spring整合Mybatis方式之注冊映射器

    這篇文章主要介紹了Spring整合Mybatis方式之注冊映射器,MapperFactoryBean注冊映射器的最大問題,就是需要一個個注冊所有的映射器,而實際上mybatis-spring提供了掃描包下所有映射器接口的方法,每種方式給大家介紹的非常詳細,需要的朋友參考下吧
    2024-03-03
  • Java性能優(yōu)化之關(guān)于大對象復(fù)用的目標(biāo)和注意點

    Java性能優(yōu)化之關(guān)于大對象復(fù)用的目標(biāo)和注意點

    這篇文章主要介紹了Java性能優(yōu)化之關(guān)于大對象復(fù)用的目標(biāo)和注意點,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-03-03
  • SpringBoot整合Liquibase的示例代碼

    SpringBoot整合Liquibase的示例代碼

    本篇文章給大家介紹SpringBoot整合Liquibase的兩種情況分析,看似整合問題很簡單,但是很容易出錯,下面小編給大家介紹下整合步驟,感興趣的朋友跟隨小編一起看看吧
    2022-02-02
  • Java遞歸方法求5!的實現(xiàn)代碼

    Java遞歸方法求5!的實現(xiàn)代碼

    這篇文章主要介紹了Java遞歸方法求5!的實現(xiàn)代碼,需要的朋友可以參考下
    2017-02-02
  • 基于jenkins構(gòu)建結(jié)果企業(yè)微信提醒

    基于jenkins構(gòu)建結(jié)果企業(yè)微信提醒

    這篇文章主要介紹了基于jenkins構(gòu)建結(jié)果企業(yè)微信提醒,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-08-08
  • Java實現(xiàn)文件分片上傳接口的示例代碼

    Java實現(xiàn)文件分片上傳接口的示例代碼

    這篇文章主要為大家詳細介紹了如何利用Java語言實現(xiàn)文件分片上傳的功能,文中的示例代碼講解詳細,感興趣的小伙伴可以跟隨小編一起了解一下
    2022-07-07
  • Java實現(xiàn)定時任務(wù)

    Java實現(xiàn)定時任務(wù)

    這篇文章主要為大家詳細介紹了Java實現(xiàn)定時任務(wù),文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-09-09
  • Springboot中用 Netty 開啟UDP服務(wù)方式

    Springboot中用 Netty 開啟UDP服務(wù)方式

    這篇文章主要介紹了Springboot中用 Netty 開啟UDP服務(wù)方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-11-11
  • SpringBoot的application.yml不生效問題及解決

    SpringBoot的application.yml不生效問題及解決

    這篇文章主要介紹了SpringBoot的application.yml不生效問題及解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-03-03
  • Java 包和訪問權(quán)限操作

    Java 包和訪問權(quán)限操作

    這篇文章主要介紹了Java 包和訪問權(quán)限操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-12-12

最新評論