今天尝试用JDK17+springboot3写项目,就研究了一下怎么配置Swagger接口文档
以下是SpringBoot和knife4j的版本对应:
具体想了解关于knife4j可以去官网查看:Knife4j · 集Swagger2及OpenAPI3为一体的增强解决方案. | Knife4j (xiaominfo.com)
项目环境:
JDK17
SpringBoot3.1.2
iDEA 2021.1
导入knife4j相关依赖:
<dependency>
<groupId>com.github.xiaoymin</groupId>
<artifactId>knife4j-openapi3-jakarta-spring-boot-starter</artifactId>
<version>4.0.0</version>
</dependency>
其实进行到这一步就可以了,yml也不需要配置,直接启动项目,浏览器输入:http://localhost:8080/doc.html
然后想修改主页内容的话,就去配置一下:
import io.swagger.v3.oas.models.OpenAPI;
import io.swagger.v3.oas.models.info.Contact;
import io.swagger.v3.oas.models.info.Info;
import lombok.extern.slf4j.Slf4j;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
/**
* 配置类,注册web层相关组件
* @ClassName WebMvcConfiguration
* @Description WebMvcConfiguration
* @Version 1.0
*/
@Slf4j
@Configuration
public class WebMvcConfiguration{
@Bean
public OpenAPI springShopOpenAPI() {
return new OpenAPI()
.info(new Info()
.title("农智云后台管理系统接口文档") // 接口文档标题
.description("这是基于Knife4j OpenApi3的农智云后台管理系统的接口文档") // 接口文档简介
.version("1.0") // 接口文档版本
.contact(new Contact()
.name("乆乄") //开发者
.email("1234567896@qq.com")
)
); // 开发者联系方式
}
/**
* 添加静态资源映射
* @param registry
*/
protected void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("/doc.html").addResourceLocations("classpath:/META-INF/resources/");
registry.addResourceHandler("/webjars/**").addResourceLocations("classpath:/META-INF/resources/webjars/");
}
}
刷新页面查看效果:
Controller写一个测试方法:
这样就可以了
注解对比: