springboot-swagger:配置掃描接口


承接:springboot-swagger:配置基本信息

1 新建一個controller包,並在該包下編寫一個HellorController

src/main/java/com/lv/controller/HelloController.java

package com.lv.controller;

import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class HelloController {
    @RequestMapping("/hello")
    public String hello(){
        return "hello";
    }
}

2 修改swagger配置類,配置掃描接口方式

構建Docket時通過select()方法配置怎么掃描接口,我們采用了掃描包的方式並指定掃描了我們自己創建的controller包
src/main/java/com/lv/config/SwaggerConfig.java

package com.lv.config;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
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;
import springfox.documentation.swagger2.annotations.EnableSwagger2;

import java.util.ArrayList;

@Configuration
@EnableSwagger2 //開啟Swagger2
public class SwaggerConfig {
    //配置了Swagger的Docket的bean實例
    @Bean
    public Docket docket(){
        return new Docket(DocumentationType.SWAGGER_2)
                .apiInfo(apiInfo())
                .select()
                //RequestHandlerSelectors 配置要掃描接口的方式
                //basePackage 指定要掃描的包
                .apis(RequestHandlerSelectors.basePackage("com.lv.controller"))
                .build();
    }

    //配置swagger信息 : apiInfo
    private ApiInfo apiInfo(){
        //作者信息
        Contact contact = new Contact("工藤新一", "https://www.cnblogs.com/lv1024/", "1148397597@qq.com");
        return new ApiInfo(
                "工藤新一的swaggerAPI文檔",
                "心機之蛙一直摸你肚子",
                "v1.0",
                "https://www.cnblogs.com/lv1024/",
                contact,
                "Apache 2.0",
                "http://www.apache.org/licenses/LICENSE-2.0",
                new ArrayList<>());
    }
}

3 啟動項目測試

顯示的接口變成了我們自己定義的了

4 所有掃描接口的方式

RequestHandlerSelectors() : 配置要掃描接口的方式

  • basePackage() : 指定要掃描的包
  • any() : 掃描全部
  • none() : 不掃描
  • withClassAnnotation() : 掃描類上的注解,參數是一個注解的反射對象
  • withMethodAnnotation() : 掃描方法上的注解

5 修改swagger配置類,配置接口掃描過濾的路徑

通過 paths() 方法設置過濾的路徑

src/main/java/com/lv/config/SwaggerConfig.java

//配置了Swagger的Docket的bean實例
@Bean
public Docket docket(){
    return new Docket(DocumentationType.SWAGGER_2)
            .apiInfo(apiInfo())
            .select()
            .apis(RequestHandlerSelectors.basePackage("com.lv.controller"))
            //paths():過濾什么路徑
            .paths(PathSelectors.ant("/lv/**"))
            .build();
}

6 重啟程序測試

圖中一個接口也沒有了,因為我們把唯一掃描的包路徑給過濾掉了,說明過濾成功了.


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM