目錄
1.前置條件
2.導(dǎo)依賴
3.配置
1.前置條件
已經(jīng)初始化好一個spring boot項目且版本為3X,項目可正常啟動。
作者版本為3.2.2
初始化教程:
新版idea創(chuàng)建spring boot項目-CSDN博客https://blog.csdn.net/qq_62262918/article/details/135785412?spm=1001.2014.3001.5501
2.導(dǎo)依賴
knife4j官網(wǎng):
Knife4j · 集Swagger2及OpenAPI3為一體的增強(qiáng)解決方案. | Knife4j (xiaominfo.com)https://doc.xiaominfo.com/依賴選擇:
作者的使用的spring boot 3.2.2為當(dāng)前最新版,所以依賴導(dǎo)入最新的knife4j 4.4.0
pom.xml:
<dependency>
<groupId>com.github.xiaoymin</groupId>
<artifactId>knife4j-openapi3-jakarta-spring-boot-starter</artifactId>
<version>4.4.0</version>
</dependency>
3.配置
官方文檔(快速開始):
快速開始 | Knife4j (xiaominfo.com)https://doc.xiaominfo.com/docs/quick-start
官方文檔(詳細(xì)配置):
3.1 增強(qiáng)模式 | Knife4j (xiaominfo.com)https://doc.xiaominfo.com/docs/features/enhance
application.yml:
springdoc:
swagger-ui:
path: /swagger-ui.html
tags-sorter: alpha
operations-sorter: alpha
api-docs:
path: /v3/api-docs
group-configs:
- group: '蒾酒'
paths-to-match: '/**'
#生成文檔所需的掃包路徑,一般為啟動類目錄
packages-to-scan: com.mijiu
#knife4j配置
knife4j:
#是否啟用增強(qiáng)設(shè)置
enable: true
#開啟生產(chǎn)環(huán)境屏蔽
production: false
#是否啟用登錄認(rèn)證
basic:
enable: true
username: admin
password: 123456
setting:
language: zh_cn
enable-version: true
enable-swagger-models: true
swagger-model-name: 用戶模塊
寫個接口:
@Tag注解:標(biāo)記接口類別
@Operation:標(biāo)記接口操作
@RestController
@Tag(name = "用戶接口")
@RequestMapping("/user")
public class UserController {
private final UserService userService;
public UserController(UserService userService) {
this.userService = userService;
}
@GetMapping("/list")
@Operation(summary = "用戶列表")
public List<User> test(){
return userService.list();
}
@Operation(summary = "你好")
@GetMapping("/hello")
public Object test2(){
return "hello";
}
}
啟動項目:
瀏覽器輸入:http://ip:port/doc.html
接口已經(jīng)識別到了
接下來配置以下接口文檔的作者等信息
在config目錄下新建配置類:
import io.swagger.v3.oas.models.OpenAPI;
import io.swagger.v3.oas.models.info.Contact;
import io.swagger.v3.oas.models.info.Info;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
/**
* @author mijiupro
*/
@Configuration
public class Knife4jConfig {
@Bean
public OpenAPI springShopOpenApi() {
return new OpenAPI()
// 接口文檔標(biāo)題
.info(new Info().title("蒾酒的demo")
// 接口文檔簡介
.description("這是基于Knife4j OpenApi3的測試接口文檔")
// 接口文檔版本
.version("1.0版本")
// 開發(fā)者聯(lián)系方式
.contact(new Contact().name("蒾酒")
.email("000000000@qq.com")));
}
}
重啟項目,再次訪問
每次都要打開瀏覽器輸入地址訪問不友好
啟動類上優(yōu)化:
@SpringBootApplication
@MapperScan("com.mijiu.mapper")
@Slf4j
public class SpringbootTemplateApplication {
public static void main(String[] args) {
SpringApplication app = new SpringApplication(SpringbootTemplateApplication.class);
Environment env = app.run(args).getEnvironment();
app.setBannerMode(Banner.Mode.CONSOLE);
logApplicationStartup(env);
}
private static void logApplicationStartup(Environment env) {
String protocol = "http";
if (env.getProperty("server.ssl.key-store") != null) {
protocol = "https";
}
String serverPort = env.getProperty("server.port");
String contextPath = env.getProperty("server.servlet.context-path");
if (StringUtils.isBlank(contextPath)) {
contextPath = "/doc.html";
} else {
contextPath = contextPath + "/doc.html";
}
String hostAddress = "localhost";
try {
hostAddress = InetAddress.getLocalHost().getHostAddress();
} catch (UnknownHostException e) {
log.warn("The host name could not be determined, using `localhost` as fallback");
}
log.info("""
----------------------------------------------------------
\t應(yīng)用程序“{}”正在運(yùn)行中......
\t接口文檔訪問 URL:
\t本地: \t\t{}://localhost:{}{}
\t外部: \t{}://{}:{}{}
\t配置文件: \t{}
----------------------------------------------------------""",
env.getProperty("spring.application.name"),
protocol,
serverPort,
contextPath,
protocol,
hostAddress,
serverPort,
contextPath,
env.getActiveProfiles());
}
}
效果如圖:
點(diǎn)擊直接跳轉(zhuǎn)。文章來源:http://www.zghlxwxcb.cn/news/detail-818261.html
完成!文章來源地址http://www.zghlxwxcb.cn/news/detail-818261.html
到了這里,關(guān)于Spring Boot3整合knife4j(swagger3)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!