SSM+Dubbo项目中整合Springfox(Swagger2)。

青橙电商项目是典型的SSM框架开发,使用Dubbo分布式架构.包含网站前台和管理后台两大部分。网站前台
包含主站频道(首页、搜索、购物车及支付)、用户中心、秒杀、优惠券等频道。管理
后台包含商品、订单、库存、用户、运营、统计、财务、设置等功能。

1.系统结构图

image.png

项目目录结构:

image.png

2.导入Maven坐标

在qingcheng_web_manager模块的pom文件中添加依赖,此模块是后台管理的web模块.

        
        
        
            io.springfox
            springfox-swagger2
            2.9.2
        
        
        
            io.springfox
            springfox-swagger-ui
            2.9.2
        
        
            io.springfox
            springfox-swagger2
            2.9.2
        
        
        
            com.fasterxml.jackson.core
            jackson-databind
        

2.创建配置文件

在此模块源码目录下创建一个单独的package,然后创建SwaggerConfig.java文件

package com.qingcheng.config;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.test.context.web.WebAppConfiguration;
import org.springframework.web.servlet.config.annotation.EnableWebMvc;
import springfox.documentation.builders.ApiInfoBuilder;
import springfox.documentation.builders.RequestHandlerSelectors;
import springfox.documentation.service.ApiInfo;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2;

@WebAppConfiguration
@EnableSwagger2//重要!
@EnableWebMvc
@ComponentScan(basePackages = "com.qingcheng.controller")
public class SwaggerConfig {
    @Bean
    public Docket api() {
        return new Docket(DocumentationType.SWAGGER_2)
                .select()
                .apis(RequestHandlerSelectors.any())
                .build()
                .apiInfo(apiInfo());
    }
    private ApiInfo apiInfo() {
        return new ApiInfoBuilder()
                .title("青橙电商项目接口文档")
                .description("青橙电商项目接口测试")
                .version("1.0.0")
                .termsOfServiceUrl("")
                .license("")
                .licenseUrl("")
                .build();
    }
}

3.在SpringMVC文件的配置文件中配置swagger

此项目采用的Dubbo分布式框架,所以在此模块下配置applicationContext-swagger.xml.




    
    
    
    
    
    
    
    
    
    
    



4.修改web.xml文件中配置所有的请求都经DispatcherServlet处理

  
    springmvc
    org.springframework.web.servlet.DispatcherServlet
    
    
      contextConfigLocation
      classpath*:applicationContext*.xml
    
  

  
    springmvc
    /
  

注意:这个地方必须配置,如果你配置的是*.XXX的形式会出现api-docs访问出错,这就会导致swagger-ui找不到api的有效路径。使swagger无法正常工作.

5.controller的配置,这里我只做简单的配置测试swagger是否正常工作

import java.util.List;
import java.util.Map;

@RestController
@RequestMapping("/brand")
@Api(value = "/brand", tags = "Brand品牌接口")
public class BrandController {

    @Reference
    private BrandService brandService;

    @ApiOperation(value = "获取品牌列表",notes = "查询所有品牌列表")
    @GetMapping("/findAll")
    public List findAll() {
        return brandService.findAll();
    }


    @ApiOperation(value ="获取品牌分页列表",notes = "根据page和size查询分页")
    @GetMapping("/findPage")
    public PageResult pageResult( int page, int size) {
        return brandService.findPage(page, size);
    }

运行:我这里使用Maven中的Tomcat8.5.16插件能够正常的工作

image.png

你可能感兴趣的:(SSM+Dubbo项目中整合Springfox(Swagger2)。)