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官网)

 

posted @ 2020-09-11 12:05  想~(●—●)肥~  阅读(730)  评论(0编辑  收藏  举报