8.【原創】Spring Mvc配置Swagger+swagger-bootstrap-ui生成日志服務


網上無意中看到swagger日志插件和swagger-bootstrap-ui感覺蠻實用的。這樣能動態生成對接文檔,還能在線測試接口,能直觀看到接口響應信息的格式,對於前端人員來說比較方便,同時對於服務器開發人員來說也比較不錯,能夠統一格式,且不用專門切換到單獨的文檔文件,還能直接生成.md文件,還是比較方便的,配置期間,也出現了一些問題,特此記錄一下,也方便以后使用的時候方便查看。

 

1.引入maven依賴

<!--5.1.1swagger文檔依賴-->
        <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-swagger2</artifactId>
            <version>${swagger.version}</version>
        </dependency>
        <!--5.1.2.swagger的可視化展示依賴:第三方,改版后的最后一個版本-->
        <dependency>
            <groupId>com.github.xiaoymin</groupId>
            <artifactId>swagger-bootstrap-ui</artifactId>
            <version>1.9.6</version>
        </dependency>

 

2.1書寫配置類,並注入到spring mvc核心容器(注解和xml方式二選一,此處我用的是xml方式)

package cn.drip.dripblog.config;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.stereotype.Component;
import org.springframework.web.servlet.config.annotation.EnableWebMvc;
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;

/**
 * @Author: Chunhai.Hu
 * @Date: 2020/9/10 0010 10:26
 * @Last Modified by: Chunhai.Hu
 * @Last Modified time: 2020/9/10 0010 10:26
 * @Desc: Swagger文檔配置類
 */
@EnableSwagger2
@EnableWebMvc
public class SwaggerConfig {
    @Bean
    public Docket createRestApi() {
        return new Docket(DocumentationType.SWAGGER_2)
                .apiInfo(apiInfo())
                .select()
                .apis(RequestHandlerSelectors.basePackage("cn.drip.dripblog.controller"))
                .paths(PathSelectors.any())
                .build();
    }

    private ApiInfo apiInfo() {
        return new ApiInfoBuilder()
                .title("dripblog水滴博客API說明")
                .description("dripblog水滴博客API說明文檔,如有疑問請郵件聯系作者。")
                .termsOfServiceUrl("http://localhost:8000/")
                .contact("viphuchunhai@163.com")
                .version("1.0.0")
                .build();
    }
}

2.2.注入springmvc核心容器

<!--注入swagger文檔配置類-->
<bean id="swaggerConfig" class="cn.drip.dripblog.config.SwaggerConfig"></bean>

 

3.1.配置文檔訪問的頁面路由(xml和配置類方式二選一,此處我使用配置xml方式)

<!--配置swagger-bootstrap-ui訪問的靜態資源-->
    <mvc:resources mapping="doc.html" location="classpath:/META-INF/resources/"/>
    <mvc:resources mapping="/webjars/**" location="classpath:/META-INF/resources/webjars/"/>

 

3.2.注解方式(使用了3.1的方式就不要寫3.2的了)

package cn.drip.dripblog.config;

import org.springframework.context.annotation.Configuration;
import org.springframework.stereotype.Component;
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;

/**
 * @Author: Chunhai.Hu
 * @Date: 2020/9/10 0010 12:40
 * @Last Modified by: Chunhai.Hu
 * @Last Modified time: 2020/9/10 0010 12:40
 * @Desc: 配置swagger-bootstrap-ui訪問的靜態資源:
 * @使用xml和配置類兩種方式,選其一即可
 */
@Configuration
public class SwaggerUiConfig implements WebMvcConfigurer {
    @Override
    public void addResourceHandlers(ResourceHandlerRegistry registry) {
        registry.addResourceHandler("doc.html").addResourceLocations("classpath:/META-INF/resources/");
        registry.addResourceHandler("/webjars/**").addResourceLocations("classpath:/META-INF/resources/webjars/");
    }
}

 

4.配置web.xml中的404頁面(CustomizeDispatcherServlet為自定義請求處理器,詳見:https://www.cnblogs.com/Nick-Hu/p/13650453.html(3.2點))

  <!--步驟4.1:配置初始頁和異常處理頁面-->
  <servlet-mapping>
    <servlet-name>CustomizeDispatcherServlet</servlet-name>
    <url-pattern>/static/view/404.html</url-pattern>
  </servlet-mapping>
  <error-page>
    <error-code>404</error-code>
    <location>/static/view/404.html</location>
  </error-page>
  <servlet-mapping>
    <servlet-name>CustomizeDispatcherServlet</servlet-name>
    <url-pattern>/static/view/405.html</url-pattern>
  </servlet-mapping>
  <error-page>
    <error-code>405</error-code>
    <location>/static/view/405.html</location>
  </error-page>
  <servlet-mapping>
    <servlet-name>CustomizeDispatcherServlet</servlet-name>
    <url-pattern>/static/view/500.html</url-pattern>
  </servlet-mapping>
  <error-page>
    <error-code>500</error-code>
    <location>/static/view/500.html</location>
  </error-page>

 

5.訪問測試:訪問地址:http://{ip}:{port}/{projectName}/doc.html

 

 

 

6.配置參考:https://doc.xiaominfo.com/(swagger-bootstrap-ui官網)

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM