SpringBoot整合Swagger2,亲测有效

1.配置SpringBoot,本人使用的 SpringBoot版本为1.5.10.RELEASE
2.添加Swagger2依赖

      
            io.springfox
            springfox-swagger2
            2.2.2
        
        
            io.springfox
            springfox-swagger-ui
            2.2.2
        

3.由于swagger-ui.html处于swagger2的jar包中,SpringBoot自动配置本身并不会把/swagger-ui.html这个路径映射到对应的目录META-INF/resources/下面。


image.png

4.我们加上这个映射即可。构建一个WebMvcConfig 类,代码如下:


import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurationSupport;

@Configuration
public class WebMvcConfig extends WebMvcConfigurationSupport {
    @Override
    public void addResourceHandlers(ResourceHandlerRegistry registry) {

        registry.addResourceHandler("swagger-ui.html")
                .addResourceLocations("classpath:/META-INF/resources/");

        registry.addResourceHandler("/webjars/**")
                .addResourceLocations("classpath:/META-INF/resources/webjars/");
    }
}

5.然后配置SwaggerConfig类,如下:

@EnableSwagger2
@Configuration
public class SwaggerConfig extends WebMvcConfigurationSupport {

    @Bean
    public Docket api(){
        return new Docket(DocumentationType.SWAGGER_2)
                .apiInfo(getApiInfo())
                .select()
                .apis(RequestHandlerSelectors.basePackage("com.***.dome.controller"))//配置扫描的包路径
                .paths(PathSelectors.any())
                .build();
    }

    private ApiInfo getApiInfo(){
        return new ApiInfoBuilder()
                .title("演示 Swagger 的用法")
                .description("演示Swagger中各种注解的用法")
                .version("1.0")
                .license("Apache 2.0")
                .licenseUrl("http://www.apache.org/licenses/LICENSE-2.0")
                .build();
    }
}

6.注意SwaggerConfig类要和SpringBoot的启动类处于同一层:


image.png

7.在Controller中添加Swagger2的注解(这里只添加了部分注解):
@Api:修饰整个类,描述Controller的作用
@ApiOperation:描述一个类的一个方法,或者说一个接口
@ApiParam:单个参数描述
@ApiModel:用对象来接收参数
@ApiProperty:用对象接收参数时,描述对象的一个字段
@ApiResponse:HTTP响应其中1个描述
@ApiResponses:HTTP响应整体描述
@ApiIgnore:使用该注解忽略这个API
@ApiError :发生错误返回的信息
@ApiImplicitParam:一个请求参数
@ApiImplicitParams:多个请求参数

@Controller
@Api(value = "/user",tags  = "用户控制")
@RequestMapping("/user")
public class UserController {

    @Autowired
    private UserService userService;
    @RequestMapping(value = "/allUser",method = RequestMethod.GET)
    @ApiOperation(value = "查询所有用户",notes = "查询出数据库中所有的用户")
    @ResponseBody
    public Object getAllUser(){
        List users = userService.selectAllUser();
        return users;
    }
}

8.最终访问http://IP地址:端口号/swagger-ui.html,效果如图所示:

image.png

你可能感兴趣的:(SpringBoot整合Swagger2,亲测有效)