鍓嶈█鏃犺浣犳槸浠庝簨鍓嶇寮€鍙戣繕鏄悗绔紑鍙戯紝鐩镐俊浣犻兘闅惧厤琚帴鍙f枃妗f姌纾ㄣ€傚鏋滀綘鏄墠绔紑鍙戣€咃紝鍙兘缁忓父浼氬彂鐜板悗绔粰鍑虹殑鎺ュ彛鏂囨。鍜屽疄闄呬唬鐮佷笉涓€鏍枫€傝€屽亣璁句綘鏄竴涓悗绔紑鍙戣€咃紝浣犲彲鑳戒細瑙夊緱鑷繁寮€鍙戝悗绔帴鍙e凡缁忓鐑︿汉鐨勪簡锛岃繕瑕佽姳寰堝绮惧姏鍘荤紪鍐欏拰缁存姢鎺ュ彛鏂囨。锛屾墍浠ラ毦鍏嶆湁鏃跺€欎細涓嶈兘鍙婃椂鏇存柊銆傝繖鍙兘浼氬鑷村墠鍚庣浜掍笉鐞嗚В锛屾渶鍚庣敋鑷冲惖鏋讹紝鍝堝搱鍝堭煠€傝繖涓椂鍊欐垜浠氨浼氭兂鏈夋病鏈変竴涓伐鍏峰彲浠ヨ鎴戜滑蹇€熺殑缂栧啓鎺ュ彛鏂囨。銆傝繖涓伐鍏锋棦鍙互淇濊瘉鎴戜滑鐨勬帴鍙f枃妗e疄鏃舵洿鏂帮紝鍙堝彲浠ヤ繚璇佹垜浠笉鐢ㄨ姳澶鐨勬椂闂村湪缁存姢涓婏紝鍐欐敞閲婁竴鏍风畝鍗曘€傛棦鐒惰繖鏄ぇ澶氭暟鍓嶅悗绔▼搴忓憳鐨勪竴澶х棝鐐癸紝閭h偗瀹氭湁瑙e喅鐨勫姙娉曘€傝€屼笖杩欎釜鏂规宸茬粡琚緢澶氫汉浣跨敤锛岄€愭笎鎴愪负浜嗕竴涓鑼冦€傚ぇ瀹堕兘榛樿浣跨敤杩欎釜鏂规鏉ヨВ鍐冲墠鍚庣鎺ュ彛鏂囨。涓嶅悓姝ョ殑闂锛岃€岃繖灏辨槸鎴戜滑浠婂ぉ鐨勪富瑙掆€斺€擲wagger鐨勭敱鏉ャ€傞€氳繃浣跨敤Swagger锛屾垜浠彧闇€瑕佹牴鎹畠缁欏嚭鐨勪竴绯诲垪瑙勮寖鏉ュ畾涔夋帴鍙e拰鎺ュ彛鐨勭浉鍏充俊鎭紝瀹冨氨鍙互甯垜浠嚜鍔ㄧ敓鎴愬悇绉嶆牸寮忕殑鎺ュ彛鏂囨。锛屾柟渚垮墠鍚庣-寮€鍙戜汉鍛樿繘琛屽墠鍚庣鑱斿悎璋冭瘯銆傚悓鏃讹紝濡傛灉鎴戜滑鐨勪唬鐮佹帴鍙e彂鐢熷彉鍖栵紝鍙渶瑕佹洿鏂癝wagger鐨勬弿杩板嵆鍙紝鍙互瀹炴椂鏇存柊锛屽疄鐜板疄闄呬唬鐮佸拰鎺ュ彛鏂囨。鐨勪竴鑷存€с€係wagger绠€浠嬩粈涔堟槸SwaggerSwagger鏄竴绉嶆帴鍙f弿杩拌瑷€锛屼富瑕佺敤浜庣敓鎴愩€佹弿杩般€佽皟鐢ㄥ拰鍙鍖朢ESTful椋庢牸鐨刉eb鏈嶅姟鎺ュ彛鏂囨。銆傚湪浠ュ墠鐨勯」鐩腑锛屽墠鍚庣鍙兘涓嶄細鍒嗗紑鍚屾椂寮€鍙戯紝鎵€浠ユ帴鍙f枃妗e彲鑳芥病鏈夐偅涔堥噸瑕併€備絾鏄幇鍦ㄤ富娴佺殑椤圭洰鍩烘湰閮芥槸鍓嶅悗绔垎绂荤殑銆傚鏋滃墠鍚庣娌熼€氫笉濂斤紝鍙兘浼氬鑷存帴鍙f枃妗f洿鏂颁笉鍙婃椂锛岄€犳垚涓€浜涗笉蹇呰鐨勯夯鐑︺€傞€氫織鍦拌锛孲wagger灏辨槸甯垜浠啓鎺ュ彛鏂囨。銆傚畠涓嶄粎鍙互鑷姩鐢熸垚瀹炴椂鐨勬帴鍙f枃妗o紝杩樺彲浠ョ敓鎴愭祴璇曠敤渚嬶紝鏂逛究鎴戜滑杩涜娴嬭瘯銆係wagger涓昏鎻愪緵浠ヤ笅寮€婧愬伐鍏凤細SwaggerEditorSwagger鎻愪緵鐨勭紪杈戝櫒涓昏鐢ㄤ簬缂栬緫Swagger鎻忚堪鏂囦欢锛屾敮鎸佸疄鏃堕瑙堟弿杩版枃浠剁殑鏇存柊鏁堟灉銆傚畠绫讳技浜庢垜浠殑Markdown缂栬緫鍣ㄣ€傚乏杈瑰啓婧愮爜锛屽彸杈瑰啓婧愮爜銆傛偍鍙互瀹炴椂棰勮銆傜紪杈戝櫒涓嶄粎鎻愪緵鍦ㄧ嚎浣跨敤锛岃繕鏀寔鏈湴閮ㄧ讲銆係waggerUI鎻愪緵浜嗕竴涓彲瑙嗗寲鐨刄I椤甸潰锛岀敤浜庢樉绀篠wagger鎻忚堪鏂囦欢銆傛帴鍙g殑璋冪敤鑰呭拰娴嬭瘯鑰呭彲浠ラ€氳繃璇ラ〉闈㈡煡鐪嬫帴鍙g殑鐩稿叧淇℃伅锛岃繘琛岀畝鍗曠殑鎺ュ彛璇锋眰娴嬭瘯銆傞€氳繃浣跨敤杩欎釜宸ュ叿锛孲waggerCodegen鍙互灏哠wagger鎻忚堪鏂囦欢鐢熸垚涓篐TML鍜孋WIKI椋庢牸鐨勭晫闈㈡枃妗o紝杩樺彲浠ヤ负鏈嶅姟鍣ㄥ拰瀹㈡埛绔敓鎴愬绉嶄笉鍚岃瑷€鐨勪唬鐮併€係waggerUI骞虫椂鍜屾垜浠墦浜ら亾鏈€澶氱殑宸ュ叿鍙兘灏辨槸宸ュ叿SwaggerUI浜嗭紝瀹冧富瑕佹槸鐢ㄦ潵灞曠ず鐣岄潰鏂囨。鐨勩€傛牴鎹甋wagger瑙勮寖锛屾牴鎹垜浠唬鐮佷腑璁剧疆鐨勬弿杩帮紝鑷姩鐢熸垚鎺ュ彛鎻忚堪鏂囨。銆備竴涓畝鍗曠殑渚嬪瓙濡備笅锛歋pringBoot闆嗘垚Swagger鍒涘缓SpringBoot椤圭洰涓婇潰绠€鍗曚粙缁嶄簡Swagger涔嬪悗锛屾垜浠潵鐪嬬湅濡備綍鍦⊿pringBoot椤圭洰涓娇鐢⊿wagger銆傞鍏堬紝鎮ㄩ渶瑕佸垱寤轰竴涓畝鍗曠殑SpringBoot椤圭洰銆傚鏋滀笉鐭ラ亾濡備綍鍒涘缓锛屽彲浠ュ弬鑰冩垜涔嬪墠鐨勬枃绔犲垱寤篠pringBoot椤圭洰鐨?绉嶆柟娉曘€傚垱寤哄悗鐨勯」鐩晫闈㈠涓嬶細瀵煎叆渚濊禆鍒涘缓SpringBoot椤圭洰鍚庯紝闇€瑕侀厤缃」鐩畃om.xml鏂囦欢锛屽苟鍦ㄥ叾涓紩鍏wagger鐩稿叧渚濊禆銆?dependency>io.springfoxspringfox-swagger2<鐗堟湰>2.9.2io.springfoxspringfox-swagger-ui2.9.2鏋勫缓瀹孲wagger閰嶇疆绫诲苟寮曞叆渚濊禆涔嬪悗锛屾帴涓嬫潵灏辨槸鏋勫缓Swagger閰嶇疆绫讳簡銆傚寘com.cunyu.springbootswaggerdemo.config锛涘鍏rg.springframework.context.annotation.Bean锛涘鍏rg.springframework.context.annotation.Configuration锛涘鍏pringfox.documentation.builders.RequestHandlerSelectors锛涘鍏pringfox.documentation.service.ApiInfo锛涘鍏pringfox.documentation.service.Contact锛涘鍏pringfox.documentation.spi.DocumentationType锛涘鍏pringfox.documentation.spring.web.plugins.Docket锛涘鍏pringfox.documentation.swagger2.annotations.EnableSwagger2锛涘鍏ava.util.ArrayList锛?***浣跨敤IntelliJIDEA鍒涘缓銆?*@author:鏉戦洦閬?@version:1.0*@project:springboot-swagger-demo*@package:com.cunyu.springbootswaggerdemo.config*@className:Swagger2Configuration*@createTime:2022/1/522:21*@email:747731461@qq.com*@寰俊:cunyu1024*@鍏紬鍙?鏉戦洦閬?@缃戠珯:https://cunyu1943.github.io*@description:*/@Configuration@EnableSwagger2publicclassSwagger2Configuration{/***閰嶇疆Swagger2*娉ㄥ唽涓€涓狟ean灞炴€?enable()锛氭槸鍚﹀惎鐢⊿wagger锛屽惎鐢ㄥ悗鍙兘鍦ㄦ祻瑙堝櫒涓闂?groupName()锛氱敤浜庨厤缃瓵PI鏂囨。鐨勫垎缁?/@BeanpublicDocketdocket(){returnnewDocket(DocumentationType.SWAGGER_2).apiInfo(apiInfo()).enable(true).groupName("v1").select()//杩囨护璺緞//.paths(PathSelectors.ant())//鎸囧畾鎵弿鍖呫€俛pis(RequestHandlerSelectors.basePackage("com.cunyu.springbootswaggerdemo.controller")).build();}privateApiInfoapiInfo(){/*浣滆€呬俊鎭?/鑱旂郴鏂瑰紡contact=newContact("Cunyuyao","https://cunyu1943.github.io","747731461@qq.com");returnnewApiInfo("Swagger娴嬭瘯鎺ュ彛鏂囨。","SpringBoot闆嗘垚Swagger娴嬭瘯鎺ュ彛鏂囨。","v1.0","https://cunyu1943.github.io",contact,"Apache2.0","http:///www.apache.org/licenses/LICENSE-2.0",newArrayList());}}缂栧啓鎺ュ彛閰嶇疆濂絊wagger鍚庯紝鍦ㄦ垜浠殑椤圭洰涓坊鍔犱竴涓畝鍗曠殑鎺ュ彛锛岃繖閲屼互甯﹀弬鏁板拰涓嶅甫鍙傛暟鐨勭畝鍗曟帴鍙d负渚嬪寘com.cunyu.springbootswaggerdemo.controller锛涘鍏o.swagger.annotations.Api锛涘鍏o.swagger.annotations.ApiOperation锛涘鍏o.swagger.annotations.ApiParam锛涘鍏rg.springframework.web.bind.annotation.GetMapping锛涘鍏rg.springframework.web.bind.annotation.PostMapping;importorg.springframework.web.bind.annotation.RestController;/***浣跨敤IntelliJIDEA鍒涘缓銆?*@author:鏉戦洦閬?@version:1.0*@project:springboot-swagger-demo*@package:com.cunyu.springbootswaggerdemo.controller*@className:SwaggerDemoController*@createTime:2022/1/522:21*@email:747731461@qq.com*@寰俊:cunyu1024*@鍏紬鍙?鏉戦洦閬?@缃戠珯:https://cunyu1943.github.io*@description:*/@Api@RestControllerpublicclassSwaggerDemoController{@ApiOperation(value="helloworld鎺ュ彛")@GetMapping("hello")publicStringhello(){return"helloworld";}@ApiOperation(value="鏈夋帴鍙?)@PostMapping("demo")publicStringdemo(@ApiParam(name="name",value="鏉戦洦椴?,required=true)Stringname){return"hello,"+name;}}鏌ョ湅骞舵祴璇曠晫闈㈠畬鎴愪互涓婃楠ゅ悗锛屾垜浠惎鍔ㄩ」鐩紝鐒跺悗鎵撳紑娴忚鍣ㄥ嵆鍙闂甴ttp://localhost:8080/swagger涓殑浠ヤ笅鍦板潃璁块棶鎴戜滑椤圭洰鐨勭晫闈㈡枃妗?..璁块棶涓婅堪鍦板潃鍚庯紝濡傛灉鍑虹幇濡備笅鐣岄潰锛屽垯璇存槑鎴戜滑宸茬粡鎴愬姛灏哠wagger2涓嶴pringBoot闆嗘垚銆傜偣鍑诲叿浣撴帴鍙o紝浼氬嚭鐜拌鎺ュ彛鐨勪竴浜涜缁嗕俊鎭紝濡備笅鍥撅紝涓€鑸寘鎷細鎺ュ彛璇锋眰鏂瑰紡锛屾帴鍙h姹傝矾寰勫強鎻忚堪锛屾帴鍙h姹傚弬鏁帮紝鎺ュ彛鍝嶅簲濡傛灉鎴戜滑鎯宠繘琛岀畝鍗曠殑娴嬭瘯锛岀偣鍑讳笂鍥惧彸涓婃柟鐨凾ryitout锛岀劧鍚庢垜浠氨鍙互缂栬緫璇锋眰鍙傛暟鐨勫€间簡銆傜紪杈戝畬鎴愬悗锛岀偣鍑诲簳閮ㄧ殑Execute锛屽彲浠ユ煡鐪嬫帴鍙g殑杩斿洖鍊笺€備互鎴戠粰鐨勬帴鍙d负渚嬶紝鎴戜紶鍏ヤ竴涓弬鏁皀ame锛岀劧鍚庢墽琛宒emo鎺ュ彛锛屾渶鍚庝細杩斿洖hello,name鐨勭粨鏋滐紝鍏朵腑name灏辨槸鎴戜紶鍏ョ殑鍙傛暟鍊硷紝杩欓噷鎴戜紶鍏uramura锛屾墍浠ョ粨鏋滃簲璇ユ槸浣犲ソ锛屼綑濮氭潙鏉戙€傚彲浠ョ湅鍒癝wagger娴嬭瘯涔熺粰鎴戣繑鍥炰簡鐩稿簲鐨勭粨鏋滐紝璇存槑鎴戜滑鐨勬帴鍙f祴璇曟垚鍔熶簡锛佹敞鎰忓鏋滃湪闆嗘垚杩囩▼涓嚭鐜板涓嬮敊璇細org.springframework.context.ApplicationContextException:Failedtostartbean'documentationPluginsBootstrapper';nestedexceptionisjava.lang.NullPointerException杩欏彲鑳芥槸鐢变簬SpringBoot鐨勯珮鐗堟湰銆傚啓杩欑瘒鏂囩珷鐨勬椂鍊欙紝涓€寮€濮嬩娇鐢ㄧ殑鏄疭pringBoot2.6.2鐗堟湰锛屾墍浠ュ嚭鐜颁簡杩欎釜閿欒锛屽悗鏉ュ皢SpringBoot闄嶇骇鍒?.5.6鍚庯紝杩欎釜閿欒灏变笉鍐嶅嚭鐜颁簡銆傛墍浠ュ鏋滀綘涔熸湁杩欎釜闂锛屼篃鍙互灏濊瘯闄嶄綆SpringBoot鐗堟湰鏉ヨВ鍐炽€傜患涓婃墍杩帮紝浠ヤ笂灏辨槸鏈枃鐨勫叏閮ㄥ唴瀹广€備富瑕佺畝鍗曚粙缁嶄簡Swagger锛屽皢Swagger涓嶴pringBoot闆嗘垚锛屽苟杩涜浜嗙畝鍗曠殑娴嬭瘯銆傝嚦浜庢枃涓殑绀轰緥浠g爜锛屾垜宸茬粡涓婁紶鍒癎ithub浜嗐€傚鏋滀綘闇€瑕佹湅鍙嬶紝浣犲彲浠ヨ嚜宸卞幓鎷裤€備紶閫侀棬锛歨ttps://github.com/cunyu1943/...