Swagger2+SpringMVC 集成教程

# Swagger2 SpringMVC集成(非SpringBoot)

Swgger

做过手机端接口的同学们都有过历史的经历,写完一个接口之后,Junit测试调试过后,需要在接口文档中详细的去编写给客户端开发同学看的一份文档,而且稍微不注意就有可能写错一个字母,下面来段单口相声(PS: 不会单口相声的程序员不是好产品!!!)

场景:APP活动接口
任务:我,APP开发者
时间:及其困乏的下午

我:Hi,哥们,接口开发好了,文档已经在git上面更新。
APP开发者:恩,我来请求一下。
......大约半分钟后...
APP开发者:接口请求不到。
我:(内心:怎么可能,我都单元测试过了,我确信我看的都是绿的啊,绿的啊,)你是不是写的有问题,自己检查一下哈(PS:怎么可能是我的问题)。

........大约一分钟后......
APP开发者:请求不到。

APP开发者:请求不到。

APP开发者: 请求不到。

我: 我来看一下(PS :我也是客户端开发者),没什么问题,怎么就请求不到呢,好吧我笑而不语的把/INfo 修改成/info SUCCESS !

也许上面的经历你也经历过,我也只是说明一下有这么中情况,事情是真实的,剧情嘛~ 每一个程序员都是一个优秀的导演,哈哈哈 ~ 下面切入整体,介绍一下怎么把Swagger2 和 SpringMVC 结合,看到最后的结果,你就知道Swagger2的有点了。
Swagger官网

集成步骤

  • 构建Maven工程
  • 添加Swagger2依赖
         
            io.springfox
            springfox-swagger2
            2.5.0
        
        
            io.springfox
            springfox-swagger-ui
            2.5.0
        

        
        
            com.fasterxml.jackson.core
            jackson-core
            2.8.6
        

        
        
            com.fasterxml.jackson.core
            jackson-databind
            2.8.6
        
        
        
            com.fasterxml.jackson.core
            jackson-annotations
            2.8.6
        

* 配置Swagger2

        @Component
        @Configuration
        @EnableSwagger2
        @EnableWebMvc
        @ComponentScan("com.zhaoshuai.controller")
        public class Swagger2Config {
            @Bean
            public Docket createAPI() {
                return new Docket(DocumentationType.SWAGGER_2).forCodeGeneration(true).select().apis(RequestHandlerSelectors.any())
                        //过滤生成链接
                        .paths(PathSelectors.any()).build().apiInfo(apiInfo());
            }
        
            private ApiInfo apiInfo() {
        
                Contact contact=new Contact("赵帅","http://blog.maileba.top","[email protected]");
                ApiInfo apiInfo = new ApiInfoBuilder().license("Apache License Version 2.0").title("Swagger 集成测试").description("Swagger API Teste").contact(contact).version("1.0").build();
        
                return apiInfo;
            }
        
        }




* 设置spring-mvc.xml







*  验证 http://ip:prot/project_name/swagger-ui.html 如果没有project_name 则省去
    
![Paste_Image.png](http://upload-images.jianshu.io/upload_images/1477250-fe043120f9c8e279.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)





###附录
*  pom.xml

       
      
       4.0.0

       Swagger
       swagger
       1.0-SNAPSHOT
       
       
           org.springframework
           spring-webmvc
           4.3.5.RELEASE
       

       
           org.springframework
           spring-web
           4.3.5.RELEASE
       

       
           org.springframework
           spring-webmvc-portlet
           4.3.5.RELEASE
       

       
           org.springframework
           spring-expression
           4.3.5.RELEASE
       

       
           org.springframework
           spring-aop
           4.3.5.RELEASE
       
       
       
           org.springframework
           spring-core
           4.3.5.RELEASE
       

       
       
           org.springframework
           spring-context
           4.3.5.RELEASE
       
       
       
           org.springframework
           spring-aspects
           4.3.5.RELEASE
       



       
       
           javax.servlet
           javax.servlet-api
           3.1.0
           provided
       

       
       
           org.aspectj
           aspectjweaver
           1.8.9
       

       
       
           asm
           asm
           3.3.1
       

       
       
           asm
           asm-commons
           3.3.1
       



       
           org.springframework
           spring-test
           4.3.5.RELEASE
       



       
       
           junit
           junit
           4.12
           test
       

       
           io.springfox
           springfox-swagger2
           2.6.1
       
       
           io.springfox
           springfox-swagger-ui
           2.6.1
       

       
       
           com.fasterxml.jackson.core
           jackson-core
           2.8.6
       

       
       
           com.fasterxml.jackson.core
           jackson-databind
           2.8.6
       
       
       
           com.fasterxml.jackson.core
           jackson-annotations
           2.8.6
       


       
           org.apache.commons
           commons-lang3
           3.4
       




   






   
       
           
           
           
               
           
           
               
               
               
           
       



       
           central
           Maven Repository Switchboard
           default
           http://repo1.maven.org/maven2
           
               false
           
       
   

   
       
          
              org.apache.maven.plugins
              maven-compiler-plugin
              2.5.1
              
                  1.8
                  1.8
              
          

       
   

   

你可能感兴趣的:(Swagger2+SpringMVC 集成教程)