我的springboot版本是2.7.3
首先引入依赖
<!--swagger2接口文档依赖-->
<dependency>
<groupId>com.github.xiaoymin</groupId>
<artifactId>knife4j-spring-boot-starter</artifactId>
<version>3.0.3</version>
</dependency>
<dependency>
<groupId>org.springdoc</groupId>
<artifactId>springdoc-openapi-ui</artifactId>
<version>1.6.15</version> <!-- 版本根据你的需求 -->
</dependency>
<!--swagger2接口文档依赖-->
然后在application.yml文件上配置
spring:
mvc:
pathmatch:
matching-strategy: ant_path_matcher
最后配置 swagger文件
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
import springfox.documentation.swagger2.annotations.EnableSwagger2;
import springfox.documentation.builders.ApiInfoBuilder;
import springfox.documentation.builders.PathSelectors;
import springfox.documentation.builders.RequestHandlerSelectors;
import springfox.documentation.service.ApiInfo;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
@Configuration
@EnableSwagger2
public class WebMvcConfiguration implements WebMvcConfigurer {
@Bean
public Docket userDocket() {
ApiInfo apiInfo = new ApiInfoBuilder()
.title("后台管理系统 - 用户管理API")
.version("2.0")
.description("用户管理相关API")
.build();
return new Docket(DocumentationType.SWAGGER_2)
.apiInfo(apiInfo)
.groupName("用户管理")
.select()
.apis(RequestHandlerSelectors.basePackage("com.hmdp.controller"))
.paths(PathSelectors.any())
.build();
}
@Bean
public Docket orderDocket() {
ApiInfo apiInfo = new ApiInfoBuilder()
.title("后台管理系统 - 订单管理API")
.version("2.0")
.description("订单管理相关API")
.build();
return new Docket(DocumentationType.SWAGGER_2)
.apiInfo(apiInfo)
.groupName("订单管理")
.select()
.apis(RequestHandlerSelectors.basePackage("com.hmdp.controller"))
.paths(PathSelectors.ant("/order/**"))
.build();
}
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("/doc.html").addResourceLocations("classpath:/META-INF/resources/");
registry.addResourceHandler("/webjars/**").addResourceLocations("classpath:/META-INF/resources/webjars/");
}
}
然后是controller层
import com.hmdp.dto.LoginFormDTO;
import com.hmdp.dto.Result;
import com.hmdp.dto.UserDTO;
import com.hmdp.entity.UserInfo;
import com.hmdp.service.IUserInfoService;
import com.hmdp.service.IUserService;
import com.hmdp.utils.UserHolder;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
@Api(tags = "用户管理")
@Slf4j
@RestController
@RequestMapping("/user")
public class UserController {
@Resource
private IUserService userService;
@Resource
private IUserInfoService userInfoService;
@PostMapping("code")
@ApiOperation(value = "发送短信验证码", notes = "通过手机号发送短信验证码")
public Result sendCode(@RequestParam("phone") String phone) {
return null;
}
@PostMapping("/login")
@ApiOperation(value = "用户登录", notes = "用户通过手机号和验证码登录")
public Result login(@RequestBody LoginFormDTO loginForm){
return null;
}
@GetMapping("/me")
@ApiOperation(value = "获取当前用户信息", notes = "获取当前登录用户的信息")
public Result me() {
UserDTO userDTO = UserHolder.getUser();
if (userDTO == null) {
return Result.fail("未登录!");
}
return Result.ok(userDTO);
}
@PostMapping("/logout")
@ApiOperation(value = "用户登出", notes = "用户退出登录")
public Result logout(){
return Result.fail("功能未完成");
}
@GetMapping("/info/{id}")
@ApiOperation(value = "获取用户详细信息", notes = "根据用户ID获取用户的详细信息")
public Result info(@PathVariable("id") Long userId){
UserInfo info = userInfoService.getById(userId);
if (info == null) {
return Result.ok();
}
info.setCreateTime(null);
info.setUpdateTime(null);
return Result.ok(info);
}
}
我的端口号是:8081
所以配置好直接访问:
http://localhost:8081/doc.html#/home
可以看到界面
配置完成 记得这是swagger2