springmvc下使用swagger

1、导包
maven新建一个空的webapp项目


springmvc下使用swagger_第1张图片
image.png

pom.xml中导入 swagger需要的关键包
a、 swagger-springmvc
b、 jackson-databind 此包会依赖于jackson-core和jackson-annotations
因为是使用的maven,会自动加载依赖,所以无需像网上大多数的那样引入4个包


        
            com.mangofactory
            swagger-springmvc
            1.0.2
        
        
            com.fasterxml.jackson.core
            jackson-databind
            2.8.6
        

2、增加swagger需要的配置文件 (我是放在了 一个config结尾的包中)

package com.gta.mvcdemo.config;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Bean;

import com.mangofactory.swagger.configuration.SpringSwaggerConfig;
import com.mangofactory.swagger.models.dto.ApiInfo;
import com.mangofactory.swagger.plugin.EnableSwagger;
import com.mangofactory.swagger.plugin.SwaggerSpringMvcPlugin;

@EnableSwagger  
public class SwaggerConfig {  
  
    private SpringSwaggerConfig springSwaggerConfig;  
  
    /** 
     * Required to autowire SpringSwaggerConfig 
     */  
    @Autowired  
    public void setSpringSwaggerConfig(SpringSwaggerConfig springSwaggerConfig)  
    {  
        this.springSwaggerConfig = springSwaggerConfig;  
    }  
  
    /** 
     * Every SwaggerSpringMvcPlugin bean is picked up by the swagger-mvc 
     * framework - allowing for multiple swagger groups i.e. same code base 
     * multiple swagger resource listings. 
     */  
    @Bean  
    public SwaggerSpringMvcPlugin customImplementation()  
    {  
        return new SwaggerSpringMvcPlugin(this.springSwaggerConfig)  
                .apiInfo(apiInfo())  
                .includePatterns(".*?");  
    }  
  
    private ApiInfo apiInfo()  
    {  
        ApiInfo apiInfo = new ApiInfo(  
                "springmvc搭建swagger",  
                "spring-API swagger测试",  
                "My Apps API terms of service",  
                "[email protected]",  
                "web app",  
                "My Apps API License URL");  
        return apiInfo;  
    }  
}  

3、配置 spring、springmvc、web.xml
springmvc-servlet.xml配置文件




    
    
        
    

    
    
    
    
    
    
    

    
    
    
    
      
    

    
    
        
        
    

web.xml配置



  Archetype Created Web Application
  
  
    
        contextConfigLocation
        classpath:spring.xml
    

    
    
        org.springframework.web.context.ContextLoaderListener
    

    
    
        spring
        org.springframework.web.servlet.DispatcherServlet
        
        
            contextConfigLocation
            classpath:springmvc-servlet.xml
        
        1
    

    
        spring
        
        /
    

spring.xml 其实没配任何东西



    

4、controller和model
UserController.java

package com.gta.mvcdemo.controller;

import javax.annotation.Resource;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;

import com.gta.mvcdemo.model.User;
import com.wordnik.swagger.annotations.Api;
import com.wordnik.swagger.annotations.ApiOperation;
import com.wordnik.swagger.annotations.ApiParam;

@Api(value="user")  
@Controller  
@RequestMapping(value="/user")  
public class UserController {  
    
    @RequestMapping(value = "/getUser")  
    @ResponseBody  
    @ApiOperation(value="根据ID获取用户信息",httpMethod="GET",notes="get user by id",response=User.class)  
    public User getUser(@ApiParam(required=true,value="用户ID",name="userId")@RequestParam(value="userId")Integer userId) {  

        User u=new User();
        u.setUserId(100);
        u.setUserName("张三");
        return u;
    }  
      
}

User.java

package com.gta.mvcdemo.model;

public class User {
    private int userId;
    
    private String userName;

    public int getUserId() {
        return userId;
    }

    public void setUserId(int userId) {
        this.userId = userId;
    }

    public String getUserName() {
        return userName;
    }

    public void setUserName(String userName) {
        this.userName = userName;
    }
    
}

5、与Swagger集成
在GitHub上将swaggerui下载,地址:https://github.com/swagger-api/swagger-ui
(注意这里下载3.0以下的ui版本,不要用最新的版本)
解压后将dist文件夹中所有的文件拷贝到webapp/swagger这里的swagger是作者自定义的你可以写为自己创建的目录。
修改index.html中的 http://petstore.swagger.wordnik.com/v2/swagger.json修改为自己项目路径+api-docs,例如:
http://localhost:8080/springmvc-swagger/api-docs:springmvc-swagger为项目名称。
整个项目目录结构:

springmvc下使用swagger_第2张图片
image.png

运行后的效果
springmvc下使用swagger_第3张图片
image.png

注意点:swagger的ui版本不要过高,用3.0以下的。

你可能感兴趣的:(springmvc下使用swagger)