溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Java中Swagger技術(shù)怎么用

發(fā)布時間:2022-03-03 14:09:30 來源:億速云 閱讀:162 作者:小新 欄目:開發(fā)技術(shù)

這篇文章將為大家詳細(xì)講解有關(guān)Java中Swagger技術(shù)怎么用,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。

    Swagger的作用與概念

    在前后端分離時代,我們需要實時自動更新接口信息,和測試接口,實現(xiàn)前后端分離式開發(fā),swagger因此產(chǎn)生

    在項目中使用swagger

    以下以3.0.0依賴為例

     <!--swagger 相關(guān)組件-->
            <dependency>
                <groupId>io.springfox</groupId>
                <artifactId>springfox-swagger2</artifactId>
                <version>3.0.0</version>
            </dependency>
            <dependency>
                <groupId>io.springfox</groupId>
                <artifactId>springfox-swagger-ui</artifactId>
                <version>3.0.0</version>
            </dependency>
              <dependency>
               <groupId>io.springfox</groupId>
               <artifactId>springfox-boot-starter</artifactId>
               <version>3.0.0</version>
            </dependency>
    @RestController
    public class HelloController {
    
        @RequestMapping(value = "/hello")
        public String hello(){
             return "hello";
        }
    }
    @Configuration
    @EnableSwagger2 //開啟swagger2
    public class SwaggerConfig {
    
    }

    然后訪問http://localhost:8080/swagger-ui/index.html
    你就能看到如下界面,為swagger文檔

    Java中Swagger技術(shù)怎么用

    配置swagger

    先來看看底層的代碼,了解一下

    Java中Swagger技術(shù)怎么用

    Java中Swagger技術(shù)怎么用

    ApiInfo 配置

    @Configuration
    @EnableSwagger2 //開啟swagger2
    public class SwaggerConfig {
    
        @Bean
        public Docket docket(){
    
            return new Docket(DocumentationType.SWAGGER_2).apiInfo(apiInfo());
        }
    
        //配置swagger信息apiInfo
        private ApiInfo apiInfo(){
            //作者信息
            Contact contact = new Contact("宋先慧", "https://blog.csdn.net/sxh06", "xianhuisong@yeah.net");
            return new ApiInfo(
                    "宋先慧的Api Documentation",
                    "學(xué)習(xí)swagger沒有盡頭",
                    "1.0",
                    "urn:tos",
                    contact,
                    "Apache 2.0",
                    "http://www.apache.org/licenses/LICENSE-2.0",
                    new ArrayList());
        }
    
    }

    swagger配置掃描接口

    @Configuration
    @EnableSwagger2 //開啟swagger2
    public class SwaggerConfig {
    
    //    @Bean
    //    public Docket docket1(){
    //        return new Docket(DocumentationType.SWAGGER_2).groupName("分組二");
    //    }
        @Bean
        public Docket docket(Environment environment){
    
    
            Profiles profiles=Profiles.of("dev");
            //獲取項目的環(huán)境
             boolean flag=environment.acceptsProfiles(profiles);
    
            return new Docket(DocumentationType.SWAGGER_2)
                    .apiInfo(apiInfo())
                    .groupName("宋先慧")  //分組
                    .enable(flag)  //enable 配置是否啟動swagger  flase則不能在瀏覽器訪問
                    .select()
                    //RequestHandlerSelectors實現(xiàn)類  配置掃描方式
                    // basePackage指定要掃描的包
                    // any()全部
                    // none()都不掃描
                    //withClassAnnotation()  掃描類上的注解  參數(shù)是一個注解的反射對象
                    //withMethodAnnotation   掃描方法上的注解
                    .apis(RequestHandlerSelectors.basePackage("com.sxh.swagger.controller"))
                    //.apis(RequestHandlerSelectors.withMethodAnnotation(GetMapping.class))
                    //過濾什么路勁  過濾請求
                    //.paths(PathSelectors.ant("/sxh/**"))
                    .build();
        }
    
        //配置swagger信息apiInfo
        private ApiInfo apiInfo(){
            //作者信息
            Contact contact = new Contact("宋先慧", "https://blog.csdn.net/sxh06", "xianhuisong@yeah.net");
            return new ApiInfo(
                    "宋先慧的Api Documentation",
                    "學(xué)習(xí)swagger沒有盡頭",
                    "1.0",
                    "urn:tos",
                    contact,
                    "Apache 2.0",
                    "http://www.apache.org/licenses/LICENSE-2.0",
                    new ArrayList());
        }
    
    }

    如果我只希望在生成環(huán)境使用swagger,在正式環(huán)境不使用swagger怎么解決?(enable=false|true)

    配置api文檔分組

    Java中Swagger技術(shù)怎么用

    多個分組

    配置多個Docket 實例即可

     @Bean
        public Docket docket1(){
            return new Docket(DocumentationType.SWAGGER_2).groupName("分組一");
        }
    
     @Bean
        public Docket docket2(){
            return new Docket(DocumentationType.SWAGGER_2).groupName("分組二");
        }`

    實體類配置

    Java中Swagger技術(shù)怎么用

    Java中Swagger技術(shù)怎么用

    Java中Swagger技術(shù)怎么用

    Java中Swagger技術(shù)怎么用

    Java中Swagger技術(shù)怎么用

    關(guān)于“Java中Swagger技術(shù)怎么用”這篇文章就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,使各位可以學(xué)到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。

    向AI問一下細(xì)節(jié)

    免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

    AI