springmvc+swagger整合

1、引入maven依赖
<dependency>   
    <groupId>com.mangofactory</groupId>   
    <artifactId>swagger-springmvc</artifactId>   
    <version>1.0.2</version>   
</dependency> 
<dependency> 
    <groupId>com.fasterxml.jackson.core</groupId> 
    <artifactId>jackson-core</artifactId> 
    <version>2.5.1</version> 
</dependency> 
<dependency> 
    <groupId>com.fasterxml.jackson.core</groupId> 
    <artifactId>jackson-databind</artifactId> 
    <version>2.5.1</version> 
</dependency> 
<dependency> 
    <groupId>com.fasterxml.jackson.core</groupId> 
    <artifactId>jackson-annotations</artifactId> 
    <version>2.5.1</version> 
</dependency>
2、创建自定义swagger初始化配置文件
@EnableSwagger 
@ComponentScan(basePackages={"org.giles.springmvc.controller"})
public class SwaggerConfig {
private SpringSwaggerConfig springSwaggerConfig; 
    @Autowired 
    public void setSpringSwaggerConfig(SpringSwaggerConfig springSwaggerConfig) 
    { 
        this.springSwaggerConfig = springSwaggerConfig; 
    } 
    @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、将swagger配置类及依赖SpringSwaggerConfig加载到spring容器中
<mvc:annotation-driven></mvc:annotation-driven>
<!-- 将 springSwaggerConfig加载到spring容器 -->
<bean class="com.mangofactory.swagger.configuration.SpringSwaggerConfig" />
<!-- 将自定义的swagger配置类加载到spring容器 -->
<bean class="org.giles.springmvc.config.SwaggerConfig"></bean>
<!-- 静态资源文件,不会被Spring MVC拦截 -->
<mvc:resources
mapping="/swagger/**" location="/WEB-INF/swagger/" />
4、配置相关controller的api
@Api(value="user") 
@Controller 
@RequestMapping(value="/user") 
public class UserController {
private static Logger logger=Logger.getLogger(UserController.class);
@RequestMapping(value = "/getUser/{userId}",method=RequestMethod.GET) 
    @ResponseBody 
@ApiOperation(value=Constant.GETUSERINFOBYUSERID,httpMethod="GET",notes=Constant.GETUSERINFOBYUSERID,response=ModelAndView.class) 
    public ModelAndView getUser(@ApiParam(required=true,value="用户ID",name="userId")@PathVariable("userId")Integer userId) { 
ModelAndView modelAndView=new ModelAndView();
logger.info("用户id:"+userId+"+++++++++++++++++");
modelAndView.setViewName("userDetail");
return modelAndView;   

}
5、和swagger UI的集成
在GitHub上将swaggerui下载,地址:https://github.com/swagger-api/swagger-ui。解压后将dist文件夹中所有的文件拷贝到webapp/swagger这里的swagger是作者自定义的你可以写为自己创建的目录。
修改index.html中的 http://petstore.swagger.wordnik.com/v2/swagger.json修改为自己项目路径+api-docs
在浏览器中输入:http://localhost:8080/springmvc/swagger/dist/index.html


猜你喜欢

转载自zhaijizhe.iteye.com/blog/2403896