springboot詳解整合swagger方案
1、Swagger簡介
Swagger 是一個規(guī)范和完整的框架,用于生成、描述、調(diào)用和可視化 RESTful 風(fēng)格的 Web 服務(wù)。
官網(wǎng): ( https://swagger.io/ )
主要作用是:
1. 使得前后端分離開發(fā)更加方便,有利于團(tuán)隊協(xié)作
2. 接口的文檔在線自動生成,降低后端開發(fā)人員編寫接口文檔的負(fù)擔(dān)
3. 功能測試
Spring已經(jīng)將Swagger納入自身的標(biāo)準(zhǔn),建立了Spring-swagger項(xiàng)目,現(xiàn)在叫 Springfox。通過在項(xiàng)目中引入Springfox ,即可非常簡單快捷的使用Swagger。
2、整合步驟
項(xiàng)目整體架構(gòu)如下:

首先構(gòu)建一個maven項(xiàng)目,添加依賴,我本項(xiàng)目只是一個子模塊,所以相應(yīng)的版本都是依賴于父版本的,看不到版本號,swagger使用的是2.9.2版本
<dependencies>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
</dependency>
</dependencies>創(chuàng)建Swagger配置類SwaggerConfig
package com.swagger.config;
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
import springfox.documentation.builders.ApiInfoBuilder;
import springfox.documentation.builders.PathSelectors;
import springfox.documentation.builders.RequestHandlerSelectors;
import springfox.documentation.service.ApiInfo;
import springfox.documentation.service.Contact;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
@Configuration
@ConditionalOnProperty(prefix = "swagger",value = {"enable"},havingValue = "true")
public class SwaggerConfig implements WebMvcConfigurer {
@Bean
public Docket buildDocket() {
// 要掃描的API(Controller)基礎(chǔ)包
return new Docket(DocumentationType.SWAGGER_2)
.apiInfo(buildApiInfo())
.select()
.apis(RequestHandlerSelectors.basePackage("com.swagger.controller"))
.paths(PathSelectors.any())
.build();
}
private ApiInfo buildApiInfo() {
Contact contact = new Contact("開發(fā)者", "", "");
return new ApiInfoBuilder()
.title("測試‐應(yīng)用API文檔")
.description("")
.contact(contact)
.version("1.0.0")
.build();
}
/*** 添加靜態(tài)資源文件,外部可以直接訪問地址 ** @param registry */
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry
.addResourceHandler("/**")
.addResourceLocations("classpath:/static/");
registry
.addResourceHandler("swagger‐ui.html")
.addResourceLocations("classpath:/META‐INF/resources/");
registry
.addResourceHandler("/webjars/**")
.addResourceLocations("classpath:/META‐INF/resources/webjars/");
}
}在Controller層創(chuàng)建SwaggerController類方便測試,并添加swagger相應(yīng)注解
package com.swagger.controller;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiOperation;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
@Api(value = "測試平臺 ",tags = "測試平臺")
@RestController
public class SwaggerController {
@ApiOperation("測試")
@GetMapping(path = "/hello")
public String hello(){
return "hello";
}
@ApiOperation("測試2")
@ApiImplicitParam(name = "name",value = "姓名",required = true,dataType = "string")
@GetMapping("/hi")
public String hi(String name){
return "hi : "+name;
}
}常用Swagger注解如下:
- @Api:修飾整個類,描述Controller的作用 @ApiOperation:描述一個類的一個方法,或者說一個接口
- @ApiParam:單個參數(shù)的描述信息
- @ApiModel:用對象來接收參數(shù)
- @ApiModelProperty:用對象接收參數(shù)時,描述對象的一個字段
- @ApiResponse:HTTP響應(yīng)其中1個描述
- @ApiResponses:HTTP響應(yīng)整體描述
- @ApiIgnore:使用該注解忽略這個API
- @ApiError :發(fā)生錯誤返回的信息
- @ApiImplicitParam:一個請求參數(shù)
- @ApiImplicitParams:多個請求參數(shù)的描述信息
創(chuàng)建啟動類SwaggerApplication
package com.swagger;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import springfox.documentation.swagger2.annotations.EnableSwagger2;
@SpringBootApplication
@EnableSwagger2 //開啟swagger
public class SwaggerApplication {
public static void main(String[] args) {
SpringApplication.run(SwaggerApplication.class,args);
}
}啟動SwaggerApplication ,訪問http://localhost:8080/swagger-ui.html

即可以查看接口文檔了......
路漫漫其修遠(yuǎn)兮,吾將上下而求索,希望此篇文章對大家有所幫助......
到此這篇關(guān)于springboot詳解整合swagger方案的文章就介紹到這了,更多相關(guān)springboot swagger內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Maven遠(yuǎn)程倉庫地址修改實(shí)現(xiàn)解析
這篇文章主要介紹了Maven遠(yuǎn)程倉庫地址修改實(shí)現(xiàn)解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2019-11-11
python實(shí)戰(zhàn)之德州撲克第一步-發(fā)牌
這篇文章主要介紹了python實(shí)戰(zhàn)之德州撲克第一步-發(fā)牌,文中有非常詳細(xì)的代碼示例,對正在學(xué)習(xí)python的小伙伴們有非常好的幫助,需要的朋友可以參考下2021-04-04
使用Java編寫導(dǎo)出不確定行數(shù)列數(shù)數(shù)據(jù)的工具類
這篇文章主要為大家詳細(xì)介紹了如何使用Java編寫導(dǎo)出不確定行數(shù)列數(shù)數(shù)據(jù)的工具類,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2024-03-03
Java實(shí)戰(zhàn)之圖書管理系統(tǒng)的實(shí)現(xiàn)
這篇文章主要介紹了如何利用Java語言編寫一個圖書管理系統(tǒng),文中采用的技術(shù)有Springboot、SpringMVC、MyBatis、ThymeLeaf 等,需要的可以參考一下2022-03-03
使用Java實(shí)現(xiàn)將ppt轉(zhuǎn)換為文本
這篇文章主要為大家詳細(xì)介紹了如何使用Java實(shí)現(xiàn)將ppt轉(zhuǎn)換為文本,文中的示例代碼簡潔易懂,具有一定的借鑒價值,有需要的小伙伴可以參考下2024-01-01
Java享元設(shè)計模式優(yōu)化對象創(chuàng)建提高性能和效率
Java享元設(shè)計模式通過共享可重用的對象,減少了系統(tǒng)中對象的數(shù)量,優(yōu)化了對象的創(chuàng)建和管理,提高了性能和效率。它是一種經(jīng)典的設(shè)計模式,適用于需要處理大量相似對象的應(yīng)用程序2023-04-04

