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,效果如图所示:
网友评论