1、单体项目集成
- 添加依赖:
<dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>8.0.29</version> </dependency> <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifactId> <version>3.5.3.1</version> </dependency> <dependency> <groupId>com.github.xiaoymin</groupId> <artifactId>knife4j-spring-boot-starter</artifactId> <version>3.0.3</version> </dependency>
- 编写配置类:
/** * @CreateTime: 2023-10-14 15:33 * @Description: 接口文档配置 * @Version: 1.0 */ @Configuration @EnableSwagger2 public class Knife4jConfiguration { @Bean public Docket createRestApi() { return new Docket(DocumentationType.SWAGGER_2) .useDefaultResponseMessages(false) .apiInfo(apiInfo()) .select().apis(RequestHandlerSelectors.basePackage("org.coding.controller")) .paths(PathSelectors.any()).build(); } private ApiInfo apiInfo() { return new ApiInfoBuilder() .description("Knife4j API接口文档") .contact(new Contact("demo", "https://xxx.xxx.xxx/demo", "XXX@qq.com")) .version("v1.0") .title("Spring Boot 集成 Validation 参数校验API测试文档").build(); } }
- 配置静态资源:
package org.coding.config.knife4j; import org.springframework.context.annotation.Configuration; import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry; import org.springframework.web.servlet.config.annotation.WebMvcConfigurationSupport; /** * @CreateTime: 2023-10-15 17:16 * @Version: 1.0 */ @Configuration public class PersonWebMvcConfiguration extends WebMvcConfigurationSupport { @Override public void addResourceHandlers(ResourceHandlerRegistry registry) { registry.addResourceHandler("/**", "classpath:/static/"); registry.addResourceHandler("doc.html").addResourceLocations("classpath:/META-INF/resources/"); registry.addResourceHandler("/webjars/**").addResourceLocations("classpath:/META-INF/resources/webjars/"); super.addResourceHandlers(registry); } }
- 启动项目访问地址如图所示:
2、boot3.0集成knife4j4.3.0
- 依赖
<dependency>
<groupId>com.github.xiaoymin</groupId>
<artifactId>knife4j-openapi3-jakarta-spring-boot-starter</artifactId>
<version>4.3.0</version>
</dependency>
- 配置
-
@Configuration public class Knife4jConfig { @Bean public OpenAPI springShopOpenAPI() { return new OpenAPI() .info(new Info().title("API接口文档") .description("boot3整合mybatis-plus") .version("v1.0") .license(new License().name("Apache 2.0").url("http://springdoc.org"))) .externalDocs(new ExternalDocumentation() .description("外部文档") .url("https://springshop.wiki.github.org/docs")); } }
- 属性配置【https://doc.xiaominfo.com/docs/quick-start#spring-boot-3】
# springdoc-openapi项目配置 springdoc: swagger-ui: path: /swagger-ui.html tags-sorter: alpha operations-sorter: alpha api-docs: path: /v3/api-docs group-configs: - group: 'user' paths-to-match: '/**' packages-to-scan: org.coding.java.controller # knife4j的增强配置,不需要增强可以不配 knife4j: enable: true setting: language: zh_cn
- 如图所示