椤圭洰涓娇鐢ㄧ殑springfox-swagger2@2.9.2鐗堟湰闆嗘垚浜哠pring涓殑swagger鏂囨。鍔熻兘銆傞渶瑕侀€氳繃@ApiModel娉ㄨВ鏉ヤ慨鏀硅緭鍏ヨ緭鍑虹被锛屼絾鏄鏋滄湁涓や釜涓嶅悓鐨勫寘涓嬬殑鍚屽悕绫昏@ApiModel娉ㄨВ鏃讹紝鏂囦欢浼氳瑕嗙洊锛屼緥濡傦細com.example.demo.login.dto.UserDTOpackagecom.example.demo.login.dto;@Data@ApiModelpublicclassUserDTO{@ApiModelProperty("Name")绉佹湁瀛楃涓插悕绉帮紱@ApiModelProperty("Age")privateIntegerage;}com.example.demo.vip.dto.UserDTOpackagecom.example.demo.vip.dto;@Data@ApiModelpublicclassUserDTO{@ApiModelProperty("Name")绉佹湁瀛楃涓插悕绉?@ApiModelProperty("Membershiplevel")privateIntegervipLevel;}涓婇潰涓や釜绫荤敓鎴愮殑鏂囨。浼氬彉鎴恠wagger妯″瀷锛氬鑷存帴鍙f枃妗f樉绀洪敊璇細瑙e喅鍐茬獊淇敼@ApiModel娉ㄨВ锛堟帹鑽愶級锛岄伩鍏嶄笌same鍐茬獊閫氳繃淇敼@ApiModel鐨剉alue灞炴€ф潵鍛藉悕銆備慨鏀瑰悗涓猴細packagecom.example.demo.login.dto;@Data@ApiModel("login$UserDTO")publicclassUserDTO{}packagecom.example.demo.vip.dto;@Data@ApiModel("vip$UserDTO")publicclassUserDTO{}鍙互鐪嬪埌鐢熸垚浜嗕袱涓猻wagger妯″瀷锛氫慨鏀圭被鍚嶏紝淇敼涓や釜绫诲悕锛屼娇绫诲悕涓嶅啿绐併€傝嚜瀹氫箟swagger鎻掍欢浣嗘槸锛屼笂杩拌В鍐冲啿绐佺殑鏂规硶杩樻槸澶夯鐑︿簡銆傚彧鏄畾涔変竴涓枃妗g殑鍏ュ彛鍜屽嚭鍙o紝杩樿鑰冭檻绫婚噸澶嶇殑闂銆傝繖绉嶅鍔犵簿绁炶礋鎷呭拰宸ヤ綔閲忕殑闂瑕佸敖閲忛伩鍏嶃€傛垜鍦ㄦ兂鑳戒笉鑳界粰姣忎釜绫婚兘鍔犱笂@ApiModel娉ㄨВ锛屽叾浠栫殑鍐茬獊闂灏变笉鐢ㄨ€冭檻浜嗐€備簬鏄€氳繃璺熻釜婧愮爜锛屾壘鍒颁簡鐢熸垚swagger妯″瀷鍚嶇殑鍦版柟銆傝瑙侊細github鍙互鐪嬪埌鍛藉悕閫昏緫鏄紭鍏堣€冭檻@ApiModel鐨勫€笺€傚鏋滀笉鏄紝灏嗕娇鐢╠efaultTypeName銆傝窡杩涚湅鍒癲efaultTypeName鏄洿鎺ュ彇绫荤殑缂╁啓锛屼唬鐮佸涓嬶細姝f槸鍥犱负榛樿鍙栦簡绫荤殑缂╁啓锛屼笉鍚屽寘鍚嶄笅鐨勫悓鍚嶇被鐢熸垚鐨剆wagger妯″瀷琚鐩栥€傚師鍥犲凡缁忓垎鏋愯繃浜嗭紝鎺ヤ笅鏉ュ氨鏄湅super.nameFor(type)鏂规硶鏄惁鍙互鑷畾涔夈€備笉骞哥殑鏄紝杩欎釜鏂规硶鏄‖缂栫爜鐨勶紝娌℃湁鍦版柟鍙互寮€濮嬶紝浣嗘槸鍦ˋpiModelTypeNameProvider绫讳笂鏈変袱涓敞瑙Component鍜孈Order宸茬粡鏄庣‘浜嗚繖鏄竴涓猄pringbean锛岄€氳繃Spring鎻掍欢鍔犺浇鈥斺€斿湪鏈哄埗涓婏紝鎵€浠ヤ綘鍙互鑷畾涔変竴涓彃浠舵潵瀹屾垚瀹冦€傞粯璁ゆ儏鍐典笅锛岄€氳繃瀹屾暣鐨勭被璺緞鍜岀被鍚嶇敓鎴愬敮涓€鐨剆wagger妯″瀷锛屼唬鐮佸涓嬶細@Component@Order(SwaggerPluginSupport.SWAGGER_PLUGIN_ORDER-100)publicclassFullPathTypeNameProviderextendsDefaultTypeNameProvider{publicstaticfinalStringSPLIT_CHAR="$";@OverridepublicStringnameFor(Class>type){ApiModelannotation=AnnotationAnUtils(.,ApiModel.class);if(annotation==null){returnsuper.nameFor(type);}if(StringUtils.hasText(annotation.value())){returnannotation.value();}//濡傛灉@ApiModel鍊间负绌猴紝鍒欓粯璁ら噰鐢ㄥ畬鏁寸被璺緞銆俰ntpackagePathLength=type.getPackage().getName().length();杩斿洖Stream.of(type.getPackage().getName().split("\\.")).map(path->path.substring(0,1)).collect(Collectors.joining(SPLIT_CHAR))+SPLIT_CHAR+type.getName().substring(packagePathLength+1);}}鏁堟灉濡備笅锛氬悗璁伴€氳繃杩欎釜灏忎紭鍖栵紝鍙互鍑忓皯寰堝鍥㈤槦涓笉蹇呰鐨勬矡閫氭垚鏈紝璁╂垜浠彲浠ユ洿涓撴敞浜庝笟鍔″彂灞曟垜鏄疢onkeyWie锛屾杩庢壂鎻忎簩缁寸爜馃憞馃憞鍏虫敞锛佷笉瀹氭湡鍦ㄥ叕浼楀彿鍒嗕韩JAVA銆丟olang銆佸墠绔€乨ocker銆乲8s绛夊共璐х煡璇嗐€?/p>
