亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

springboot詳解整合swagger方案

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

1、Swagger簡(jiǎn)介

Swagger 是一個(gè)規(guī)范和完整的框架,用于生成、描述、調(diào)用和可視化 RESTful 風(fēng)格的 Web 服務(wù)。

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

主要作用是:

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

2. 接口的文檔在線(xiàn)自動(dòng)生成,降低后端開(kāi)發(fā)人員編寫(xiě)接口文檔的負(fù)擔(dān)

3. 功能測(cè)試

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

2、整合步驟

項(xiàng)目整體架構(gòu)如下:

首先構(gòu)建一個(gè)maven項(xiàng)目,添加依賴(lài),我本項(xiàng)目只是一個(gè)子模塊,所以相應(yīng)的版本都是依賴(lài)于父版本的,看不到版本號(hào),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配置類(lèi)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("開(kāi)發(fā)者", "", "");
        return new ApiInfoBuilder()
                .title("測(cè)試‐應(yīng)用API文檔")
                .description("")
                .contact(contact)
                .version("1.0.0")
                .build();
    }
    /*** 添加靜態(tài)資源文件,外部可以直接訪問(wèn)地址 ** @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類(lèi)方便測(cè)試,并添加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 = "測(cè)試平臺(tái) ",tags = "測(cè)試平臺(tái)")
@RestController
public class SwaggerController {
    @ApiOperation("測(cè)試")
    @GetMapping(path = "/hello")
    public String hello(){
        return "hello";
    }
    @ApiOperation("測(cè)試2")
    @ApiImplicitParam(name = "name",value = "姓名",required = true,dataType = "string")
    @GetMapping("/hi")
    public String hi(String name){
        return "hi : "+name;
    }
}

常用Swagger注解如下:

  • @Api:修飾整個(gè)類(lèi),描述Controller的作用 @ApiOperation:描述一個(gè)類(lèi)的一個(gè)方法,或者說(shuō)一個(gè)接口
  • @ApiParam:?jiǎn)蝹€(gè)參數(shù)的描述信息
  • @ApiModel:用對(duì)象來(lái)接收參數(shù)
  • @ApiModelProperty:用對(duì)象接收參數(shù)時(shí),描述對(duì)象的一個(gè)字段
  • @ApiResponse:HTTP響應(yīng)其中1個(gè)描述
  • @ApiResponses:HTTP響應(yīng)整體描述
  • @ApiIgnore:使用該注解忽略這個(gè)API
  • @ApiError :發(fā)生錯(cuò)誤返回的信息
  • @ApiImplicitParam:一個(gè)請(qǐng)求參數(shù)
  • @ApiImplicitParams:多個(gè)請(qǐng)求參數(shù)的描述信息

創(chuàng)建啟動(dòng)類(lèi)SwaggerApplication

package com.swagger;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import springfox.documentation.swagger2.annotations.EnableSwagger2;
@SpringBootApplication
@EnableSwagger2     //開(kāi)啟swagger
public class SwaggerApplication {
    public static void main(String[] args) {
        SpringApplication.run(SwaggerApplication.class,args);
    }
}

啟動(dòng)SwaggerApplication ,訪問(wèn)http://localhost:8080/swagger-ui.html

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

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

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

相關(guān)文章

  • 分享幾個(gè)提高Java性能的高效用法

    分享幾個(gè)提高Java性能的高效用法

    這篇文章主要介紹了分享幾個(gè)提高Java性能的高效用法 ,需要的朋友可以參考下
    2014-10-10
  • Java中StringBuilder類(lèi)的用法解析

    Java中StringBuilder類(lèi)的用法解析

    StringBuilder是一個(gè)可變的字符序列,這個(gè)類(lèi)提供了一個(gè)與StringBuffer兼容的API。本文主要為大家介紹了StringBuilder類(lèi)的常用用法,需要的可以參考一下
    2023-05-05
  • Java編寫(xiě)簡(jiǎn)單猜數(shù)游戲

    Java編寫(xiě)簡(jiǎn)單猜數(shù)游戲

    這篇文章主要為大家詳細(xì)介紹了Java編寫(xiě)簡(jiǎn)單猜數(shù)游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-01-01
  • SpringBoot發(fā)送異步郵件流程與實(shí)現(xiàn)詳解

    SpringBoot發(fā)送異步郵件流程與實(shí)現(xiàn)詳解

    這篇文章主要介紹了SpringBoot發(fā)送異步郵件流程與實(shí)現(xiàn)詳解,Servlet階段郵件發(fā)送非常的復(fù)雜,如果現(xiàn)代化的Java開(kāi)發(fā)是那個(gè)樣子該有多糟糕,現(xiàn)在SpringBoot中集成好了郵件發(fā)送的東西,而且操作十分簡(jiǎn)單容易上手,需要的朋友可以參考下
    2024-01-01
  • 一文詳解Spring?Boot可以同時(shí)處理多少請(qǐng)求

    一文詳解Spring?Boot可以同時(shí)處理多少請(qǐng)求

    SpringBoot是一個(gè)流行的Java開(kāi)發(fā)框架,它被廣泛用于構(gòu)建Web應(yīng)用程序,但是,開(kāi)發(fā)人員通常會(huì)擔(dān)心它的性能問(wèn)題,特別是在高負(fù)載條件下,Spring?Boot能夠同時(shí)處理多少請(qǐng)求是一個(gè)重要的問(wèn)題,在本文中,我們將討論SpringBoot的請(qǐng)求處理能力,并介紹如何提高性能
    2023-10-10
  • Spring Boot集成netty實(shí)現(xiàn)客戶(hù)端服務(wù)端交互示例詳解

    Spring Boot集成netty實(shí)現(xiàn)客戶(hù)端服務(wù)端交互示例詳解

    這篇文章主要給大家介紹了關(guān)于Spring Boot集成netty實(shí)現(xiàn)客戶(hù)端服務(wù)端交互的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2018-12-12
  • Java的Volatile實(shí)例用法及講解

    Java的Volatile實(shí)例用法及講解

    在本篇文章里小編給大家整理了關(guān)于Java的Volatile知識(shí)點(diǎn)相關(guān)內(nèi)容,有需要的朋友們可以跟著學(xué)習(xí)下。
    2019-09-09
  • SpringBoot整合FreeMarker的過(guò)程詳解

    SpringBoot整合FreeMarker的過(guò)程詳解

    FreeMarker 是一個(gè)模板引擎,可以將模板與數(shù)據(jù)結(jié)合生成文本輸出,本文給大家介紹SpringBoot整合FreeMarker的過(guò)程,感興趣的朋友一起看看吧
    2024-01-01
  • Java中Dijkstra算法求解最短路徑的實(shí)現(xiàn)

    Java中Dijkstra算法求解最短路徑的實(shí)現(xiàn)

    Dijkstra算法是一種解決最短路徑問(wèn)題的常用算法,本文主要介紹了Java中Dijkstra算法求解最短路徑的實(shí)現(xiàn),具有一定的參考價(jià)值,感興趣的可以了解一下
    2023-09-09
  • 解決Springboot配置excludePathPatterns不生效的問(wèn)題

    解決Springboot配置excludePathPatterns不生效的問(wèn)題

    這篇文章主要介紹了解決Springboot配置excludePathPatterns不生效的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-10-10

最新評(píng)論