Java使用Swagger接口框架方法詳解
一,Swagger功能是什么呢
簡(jiǎn)單說(shuō)就是生產(chǎn)API接口文檔,同時(shí)提供在線調(diào)試項(xiàng)目API的接口的功能,可以說(shuō)對(duì)推進(jìn)項(xiàng)目進(jìn)度非常有利,尤其對(duì)前后臺(tái)分離的情況更加有用;
二,如何在Java項(xiàng)目中使用Swagger功能
(歡迎使用推薦的方式)
1,過(guò)去的Swagger使用方式
——不推薦使用
(1)引入依賴 jar 包,如下:
<dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger2</artifactId> <version>2.9.2</version> </dependency> <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger-ui</artifactId> <version>2.9.2</version> </dependency>
(2)配置Swagger2Config.java
package com.qyh.pro01.config;
import java.io.Serializable;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import org.springframework.context.annotation.Configuration;
import springfox.documentation.builders.ApiInfoBuilder;
import springfox.documentation.service.ApiInfo;
import springfox.documentation.service.Contact;
import springfox.documentation.swagger2.annotations.EnableSwagger2;
/**
* Swagger配置類
*/
@Configuration
@EnableSwagger2
public class Swagger2Config implements Serializable {
private static final long serialVersionUID = 202002161810010L;
@Bean
public Docket api() {
return new Docket(DocumentationType.SWAGGER_2)
.apiInfo(apiInfo())
.select()
.apis(RequestHandlerSelectors.basePackage("com.xxx.yyy.controller"))
.apis(Swagger2Config.basePackage("com.xxx.yyy.controller"))
.paths(PathSelectors.any())
.build();
}
private ApiInfo apiInfo() {
return new ApiInfoBuilder()
.title("Swagger2-api文檔")
.description("Swagger2接口教程")
.termsOfServiceUrl("http://www.baidu.com")
.version("1.0.0")
.contact(new Contact("shenzhenNBA",
"http://www.xxx.com",
"qyhzqw@163.com"))
.build();
}
}還有些可能需要springMVC配置文件排除放行Swagger相關(guān)的html,css,JS和圖片(jpg,png,gif等),然后在項(xiàng)目使用,例如:http://localhost:8080/swagger-ui.html(另一種調(diào)試方式是http://localhost:8080/doc.html)
2,Springdoc方式使用Swagger功能
——推薦使用
過(guò)去的方式也許還是有點(diǎn)繁瑣,是時(shí)候換Springdoc方式使用Swagger功能了,當(dāng)然這個(gè)也是基于Swagger2.x實(shí)現(xiàn),它完美支持SpringBoot 1.x/2.x,Swagger-ui也比較好看,其它次要的暫時(shí)忽略;然后在項(xiàng)目中增加依賴 jar 包,
<dependency> <groupId>org.springdoc</groupId> <artifactId>springdoc-openapi-ui</artifactId> <version>1.2.30</version> <!-- 版本可自行選擇最新版本--> </dependency
在下載這些 JAR包時(shí),如果是從國(guó)外官方的可能耗時(shí)間比較久,可以修改maven倉(cāng)庫(kù)的配置文件,修改如下:
<!-- 阿里的公開maven庫(kù),在 mirrors標(biāo)簽的內(nèi)部追(增)加如下內(nèi)容 --> <mirrors> <mirror> <id>alimaven</id> <name>aliyun maven</name> <url>http://maven.aliyun.com/nexus/content/groups/public/</url> <mirrorOf>central</mirrorOf> </mirror> </mirrors>
從國(guó)內(nèi)的ali的鏡像倉(cāng)庫(kù)中下載,速度要快蠻多;記住,然后什么都不用做了,啟動(dòng)項(xiàng)目,直接可根據(jù)項(xiàng)目訪問(wèn)Swagger功能了,訪問(wèn)URL格式:http://ip:port/swagger-ui.html ,
例如我的:http://127.0.0.1/swagger-ui.html 很直觀看到API接口,同時(shí)通過(guò) “try it out” 可直接在線調(diào)試了,非常方便快速... 看看一下部分截圖:





三,后記
basic-error-controller 這些API是自動(dòng)生成的,可以不理,僅關(guān)注自己開發(fā)的API接口即可,總之,使用springdoc這種方式使用swagger功能,非常方便,簡(jiǎn)單,快速,可以快速查看項(xiàng)目各個(gè)API文檔,同時(shí)非常方便在線調(diào)試,尤其是對(duì)前后端分離的項(xiàng)目更加有利推進(jìn)項(xiàng)目進(jìn)度,可能有些考慮不周
到此這篇關(guān)于Java使用Swagger接口框架方法詳解的文章就介紹到這了,更多相關(guān)Java使用Swagger內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
SpringBoot項(xiàng)目中獲取resources下靜態(tài)文件時(shí)遇到的坑及解決
文章總結(jié):在項(xiàng)目中使用靜態(tài)圖片時(shí),遇到j(luò)ar包部署到linux服務(wù)器報(bào)錯(cuò)的問(wèn)題,解決方法包括將圖片上傳到服務(wù)器指定文件夾或使用ClassPathResource讀取,前者需要維護(hù),后者更方便2024-11-11
java UUID&雪花算法生成和使用場(chǎng)景詳解
UUID和雪花算法都是用于生成唯一標(biāo)識(shí)符的有效工具,它們各有優(yōu)勢(shì):UUID簡(jiǎn)單易用,但長(zhǎng)度較長(zhǎng),適用于分布式系統(tǒng);雪花算法生成的ID較短且有序,適用于需要保證順序的場(chǎng)景,在選擇算法時(shí),需要考慮系統(tǒng)架構(gòu)、性能需求和順序需求等因素2025-01-01
Java連接mysql數(shù)據(jù)庫(kù)代碼實(shí)例程序
這篇文章主要介紹了java連接mysql數(shù)據(jù)庫(kù)代碼實(shí)例程序,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-11-11
關(guān)于Spring多數(shù)據(jù)源TransactionManager沖突的解決方案
這篇文章主要介紹了關(guān)于Spring多數(shù)據(jù)源TransactionManager沖突的解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-07-07
Java世界時(shí)區(qū)自動(dòng)計(jì)算及時(shí)間生成方法詳解
這篇文章主要為大家詳細(xì)介紹了Java中世界時(shí)區(qū)自動(dòng)計(jì)算及時(shí)間生成的方法,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2024-12-12
Spring事件監(jiān)聽(tīng)機(jī)制之@EventListener實(shí)現(xiàn)方式詳解
這篇文章主要介紹了Spring事件監(jiān)聽(tīng)機(jī)制之@EventListener實(shí)現(xiàn)方式詳解,ApplicationContext的refresh方法還是初始化了SimpleApplicationEventMulticaster,發(fā)送事件式還是先獲取ResolvableType類型,再獲取發(fā)送監(jiān)聽(tīng)列表,需要的朋友可以參考下2023-12-12
Java后端實(shí)現(xiàn)數(shù)據(jù)加密的多方案對(duì)比分析及實(shí)踐
隨著互聯(lián)網(wǎng)業(yè)務(wù)對(duì)用戶隱私和數(shù)據(jù)安全的要求不斷提升,后端系統(tǒng)中對(duì)敏感數(shù)據(jù)的加密保護(hù)已成為必備需求,本文將以方案對(duì)比分析的結(jié)構(gòu),為后端開發(fā)者提供清晰的選型思路2025-07-07
springboot實(shí)現(xiàn)返回視圖而不是string的方法
這篇文章主要介紹了springboot實(shí)現(xiàn)返回視圖而不是string的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-01-01

