最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

springboot詳解整合swagger方案

 更新時間:2022年07月05日 09:05:45   作者:太白神龍  
Swagger是一個規(guī)范和完整的框架,用于生成、描述、調用和可視化?Restful?風格的?Web?服務??傮w目標是使客戶端和文件系統(tǒng)作為服務器以同樣的速度來更新。文件的方法、參數(shù)和模型緊密集成到服務器端的代碼,允許API來始終保持同步

1、Swagger簡介

Swagger 是一個規(guī)范和完整的框架,用于生成、描述、調用和可視化 RESTful 風格的 Web 服務。

官網(wǎng): ( https://swagger.io/ )

主要作用是:

1. 使得前后端分離開發(fā)更加方便,有利于團隊協(xié)作

2. 接口的文檔在線自動生成,降低后端開發(fā)人員編寫接口文檔的負擔

3. 功能測試

Spring已經(jīng)將Swagger納入自身的標準,建立了Spring-swagger項目,現(xiàn)在叫 Springfox。通過在項目中引入Springfox ,即可非常簡單快捷的使用Swagger。

2、整合步驟

項目整體架構如下:

首先構建一個maven項目,添加依賴,我本項目只是一個子模塊,所以相應的版本都是依賴于父版本的,看不到版本號,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)基礎包
        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("測試‐應用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相應注解

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響應其中1個描述
  • @ApiResponses:HTTP響應整體描述
  • @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

即可以查看接口文檔了......

路漫漫其修遠兮,吾將上下而求索,希望此篇文章對大家有所幫助......

到此這篇關于springboot詳解整合swagger方案的文章就介紹到這了,更多相關springboot swagger內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • 基于Hadoop實現(xiàn)Knn算法

    基于Hadoop實現(xiàn)Knn算法

    這篇文章主要為大家詳細 介紹了基于Hadoop實現(xiàn)Knn算法的相關資料,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-12-12
  • Java中的三種代理模式詳解

    Java中的三種代理模式詳解

    這篇文章主要介紹了Java中的三種代理模式詳解,代理模式的關鍵點是:代理對象與目標對象.代理對象是對目標對象的擴展,并會調用目標對象,文中提供了部分代碼,需要的朋友可以參考下
    2023-08-08
  • Maven遠程倉庫地址修改實現(xiàn)解析

    Maven遠程倉庫地址修改實現(xiàn)解析

    這篇文章主要介紹了Maven遠程倉庫地址修改實現(xiàn)解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2019-11-11
  • python實戰(zhàn)之德州撲克第一步-發(fā)牌

    python實戰(zhàn)之德州撲克第一步-發(fā)牌

    這篇文章主要介紹了python實戰(zhàn)之德州撲克第一步-發(fā)牌,文中有非常詳細的代碼示例,對正在學習python的小伙伴們有非常好的幫助,需要的朋友可以參考下
    2021-04-04
  • java數(shù)據(jù)庫唯一id生成工具類

    java數(shù)據(jù)庫唯一id生成工具類

    這篇文章主要為大家詳細介紹了java數(shù)據(jù)庫唯一id生成工具類,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-04-04
  • 使用Java編寫導出不確定行數(shù)列數(shù)數(shù)據(jù)的工具類

    使用Java編寫導出不確定行數(shù)列數(shù)數(shù)據(jù)的工具類

    這篇文章主要為大家詳細介紹了如何使用Java編寫導出不確定行數(shù)列數(shù)數(shù)據(jù)的工具類,文中的示例代碼講解詳細,感興趣的小伙伴可以跟隨小編一起學習一下
    2024-03-03
  • Java實戰(zhàn)之圖書管理系統(tǒng)的實現(xiàn)

    Java實戰(zhàn)之圖書管理系統(tǒng)的實現(xiàn)

    這篇文章主要介紹了如何利用Java語言編寫一個圖書管理系統(tǒng),文中采用的技術有Springboot、SpringMVC、MyBatis、ThymeLeaf 等,需要的可以參考一下
    2022-03-03
  • 使用Java實現(xiàn)將ppt轉換為文本

    使用Java實現(xiàn)將ppt轉換為文本

    這篇文章主要為大家詳細介紹了如何使用Java實現(xiàn)將ppt轉換為文本,文中的示例代碼簡潔易懂,具有一定的借鑒價值,有需要的小伙伴可以參考下
    2024-01-01
  • Docker和?Containerd?的區(qū)別解析

    Docker和?Containerd?的區(qū)別解析

    containerd?是一個來自?Docker?的高級容器運行時,并實現(xiàn)了?CRI?規(guī)范,它是從?Docker?項目中分離出來,之后?containerd?被捐贈給云原生計算基金會(CNCF)為容器社區(qū)提供創(chuàng)建新容器解決方案的基礎,這篇文章主要介紹了Docker和?Containerd?的區(qū)別,需要的朋友可以參考下
    2024-03-03
  • Java享元設計模式優(yōu)化對象創(chuàng)建提高性能和效率

    Java享元設計模式優(yōu)化對象創(chuàng)建提高性能和效率

    Java享元設計模式通過共享可重用的對象,減少了系統(tǒng)中對象的數(shù)量,優(yōu)化了對象的創(chuàng)建和管理,提高了性能和效率。它是一種經(jīng)典的設計模式,適用于需要處理大量相似對象的應用程序
    2023-04-04

最新評論

宣城市| 木里| 尤溪县| 宝坻区| 甘洛县| 通辽市| 渭源县| 柏乡县| 盘山县| 五原县| 河南省| 阿拉善右旗| 托克托县| 白玉县| 涟水县| 阳城县| 嘉兴市| 英德市| 兴海县| 堆龙德庆县| 临沧市| 广昌县| 休宁县| 奉化市| 玉环县| 武宣县| 大城县| 叙永县| 安岳县| 新丰县| 凤冈县| 当阳市| 抚顺市| 象山县| 大厂| 巴彦淖尔市| 湖北省| 贵德县| 克东县| 惠水县| 宜丰县|