项目结构
1.引入依赖
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>2.6.1</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>2.6.1</version>
</dependency>
2. 编写SwaggerConfig配置类
/**
* @author zxf
* @Configuration注解,配置文件
* @EnableSwagger2的作用是启用Swagger2相关功能。
*/
@Configuration
@EnableSwagger2
public class SwaggerConfig {
/**
* Docket对象包含三个方面信息:
* 1. 整个API的描述信息,即ApiInfo对象包括的信息,这部分信息会在页面上展示。
* 2. 指定生成API文档的包名。
* 3. 指定生成API的路径。
* @return
*/
@Bean
public Docket createRestApi() {
return new Docket(DocumentationType.SWAGGER_2)
.apiInfo(apiInfo())
//是否开启(true开启,false隐藏,生产环境建议隐藏)
//.enable(false)
.select()
//扫描,设置basePackage将包下所有被@Api标记类的所有方法作为api
.apis(RequestHandlerSelectors.basePackage("com.zxf.bootdemo.controller"))
//指定路径处理 (PathSelectors.any()代表所有路径)
.paths(PathSelectors.any())
.build();
}
private ApiInfo apiInfo() {
return new ApiInfoBuilder()
//设置接口文档的标题
.title("bootdemo的接口文档")
//文档描述
.description("接口说明")
//服务条款URL
.termsOfServiceUrl("http://localhost:8080")
//版本号
.version("1.0.0")
.build();
}
}
3.新建User实体类
@Data
@NoArgsConstructor
@AllArgsConstructor
@Getter
@Setter
public class User {
private Integer id;
private Integer age;
private Integer sex;
private String username;
private String password;
}
4.编写userService接口及实现类(我没连接数据库,随便写的实现方法)
/**
* @author zxf
*/
@Component
public interface UserService {
/**
* 新增用户
*
* @param user
*/
void save(User user);
/**
* 按id查询用户
* @param id
* @return
*/
User findById(Integer id);
/**
* 按id删除用户
* @param id
*/
void deleteById(Integer id);
}
/**
* @author zxf
*/
@Service
public class UserServiceImpl implements UserService {
@Override
public void save(User user) {
System.out.println("xxx");
}
@Override
public User findById(Integer id) {
return new User(2,18,1,"zxf","123");
}
@Override
public void deleteById(Integer id) {
System.out.println("xxx");
}
}
5.创建UserController进行测试
/**
* @author zxf
*/
@RestController
@RequestMapping("/user")
/**
* 说明接口文件
*/
@Api(value = "测试接口",tags = "用户管理接口")
public class UserController {
@Resource
private UserService userService;
/**
* 保存用户数据
* @param user
* @return
*/
@PostMapping(value = "/save")
//方法参数说明,name参数名;value参数说明,备注;dataType参数类型;required 是否必传;defaultValue 默认值
@ApiImplicitParam(name = "user",value = "新增用户")
//说明是什么方法(可以理解为方法注释)
@ApiOperation(value = "添加用户",notes = "添加用户")
public String saveUser(User user){
userService.save(user);
return "保存成功";
}
/**
* 根据id查询用户
* @param id
* @return
*/
@GetMapping(value = "findById")
@ApiOperation(value = "根据id获取用户信息", notes = "根据id查询用户信息")
public User getUser(Integer id){
return userService.findById(id);
}
@DeleteMapping(value = "deleteById")
@ApiOperation(value = "根据id删除数据", notes = "删除用户")
public String delete(Integer id){
userService.deleteById(id);
return "删除成功";
}
6.启动项目,在浏览器输入http://localhost:8080/swagger-ui.html#/进入swagger接口文档
7.测试接口(参数随便输入,点击Try it out!,此方法返回的是我自己定义的User对象,可以回实现类对照)
再测试一个无返回值的方法(id随便输入)
显示返回成功,看一下我们的控制台有没有打印实现类中的打印语句
参考地址:SpringBoot整合Swagger2(完整版)_编程小马-CSDN博客_springboot swagger2