您好,登錄后才能下訂單哦!
這篇文章將為大家詳細(xì)講解有關(guān)Java中Swagger技術(shù)怎么用,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。
在前后端分離時代,我們需要實時自動更新接口信息,和測試接口,實現(xiàn)前后端分離式開發(fā),swagger因此產(chǎn)生
以下以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文檔
先來看看底層的代碼,了解一下
@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()); } }
@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)
配置多個Docket 實例即可
@Bean public Docket docket1(){ return new Docket(DocumentationType.SWAGGER_2).groupName("分組一"); } @Bean public Docket docket2(){ return new Docket(DocumentationType.SWAGGER_2).groupName("分組二"); }`
關(guān)于“Java中Swagger技術(shù)怎么用”這篇文章就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,使各位可以學(xué)到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。
免責(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)容。