美文网首页
SpringBoot整合Swagger2,亲测有效

SpringBoot整合Swagger2,亲测有效

作者: 风雪幻城 | 来源:发表于2019-08-14 18:09 被阅读0次

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

          <dependency>
                <groupId>io.springfox</groupId>
                <artifactId>springfox-swagger2</artifactId>
                <version>2.2.2</version>
            </dependency>
            <dependency>
                <groupId>io.springfox</groupId>
                <artifactId>springfox-swagger-ui</artifactId>
                <version>2.2.2</version>
            </dependency>
    

    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<User> users = userService.selectAllUser();
            return users;
        }
    }
    

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

    image.png

    相关文章

      网友评论

          本文标题:SpringBoot整合Swagger2,亲测有效

          本文链接:https://www.haomeiwen.com/subject/xzenjctx.html