spring-boot集成swagger2

1.pom.xml引入swagger2依赖:

1
2
3
4
5
6
7
8
9
10
11
<!--Swagger2的依赖-->
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>${swagger.version}</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>${swagger.version}</version>
</dependency>

2.代码配置

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
@Configuration
@EnableSwagger2
public class Swagger2Config extends WebMvcConfigurerAdapter {
/**
* 这个地方要重新注入一下资源文件,不然不会注入资源的,也没有注入requestHandlerMappping,相当于xml配置的
* <!--swagger资源配置-->
* <mvc:resources location="classpath:/META-INF/resources/" mapping="swagger-ui.html"/>
* <mvc:resources location="classpath:/META-INF/resources/webjars/" mapping="/webjars/**"/>
* 不知道为什么,这也是spring boot的一个缺点(菜鸟觉得的)
* @param registry
*/
@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/");
}
@Bean
public Docket createRestApi() {
return new Docket(DocumentationType.SWAGGER_2)
.apiInfo(apiInfo())
.select()
.apis(RequestHandlerSelectors.basePackage("com.kiko.controller")) //需要扫描的路径
.paths(PathSelectors.any())
.build();
}
private ApiInfo apiInfo() {
return new ApiInfoBuilder()
.title("Spring Boot中使用Swagger2构建RESTful APIs")
.description("更多Spring Boot相关文章请关注:http://www.leiyatao.com/")
.termsOfServiceUrl("http://www.leiyatao.com/")
.contact("leiyatao0204@qq.com")
.version("1.0").license("2.0").licenseUrl("http://www.leiyatao.com")
.build();
}
}

3.Controller方法中添加注解

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
@RestController
@Api(value = "用户接口", description = "描述")
public class HelloWorldController {
@Autowired
private UserRepository userRepository;
@RequestMapping(value="hello",method=RequestMethod.GET)
public String hello(){
return "Hello Spring boot";
}
@ApiOperation(value="获取用户详细信息", notes="根据url的id来获取用户详细信息")
@ApiImplicitParam(name = "id", value = "用户ID", required = true,dataType = "Long",paramType = "query")
@RequestMapping(value="getUser", method=RequestMethod.GET)
public User getUserById(Long id) {
return userRepository.getOne(id);
}
@ApiOperation(value="创建用户", notes="根据User对象创建用户")
@ApiImplicitParam(name = "user", value = "用户详细实体user", required = true, dataType = "User" )
@RequestMapping(value="saveUser", method=RequestMethod.POST)
public String saveUser(@RequestBody User user){
userRepository.save(user);
return "success";
}
@ApiOperation(value="修改用户", notes="根据User对象修改用户")
@ApiImplicitParam(name = "user", value = "用户详细实体user", required = true, dataType = "User" )
@RequestMapping(value="updateUser", method=RequestMethod.POST)
public String updateUser(@RequestBody User user){
User user1=userRepository.getOne(user.getId());
user1.setAge(user.getAge());
user1.setName(user.getName());
userRepository.save(user1);
return "success";
}
@ApiOperation(value="查询所有", notes="查询所有")
@RequestMapping(value="findAll", method=RequestMethod.POST)
public List<User> findAll(){
return userRepository.findAll();
}
}

4.启动工程并访问

http://localhost:9999/swagger-ui.html
图片
大功告成!!