You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Swagger Codegen无法访问Vendor Extensions,如何添加@EnableEurekaClient注解?

解决Swagger Codegen 2.4.15中通过Vendor Extension控制@EnableEurekaClient注解生成的问题

我刚好熟悉Swagger Codegen 2.x版本的模板语法,你遇到的问题主要是全局Vendor Extension的访问路径不对,而且Mustache模板对带横杠的键名处理有特殊要求,下面是具体的修复步骤:

1. 确认Vendor Extension的正确访问路径

你把x-enableEureka放在了info块下,在2.4.15版本的模板中,这个扩展的完整访问路径是{{info.vendorExtensions["x-enableEureka"]}}——因为键名包含横杠,直接用点语法(比如{{info.vendorExtensions.x-enableEureka}})会被Mustache解析成info.vendorExtensions.x minus enableEureka,导致无法正确取值。

2. 修改Controller模板的条件判断逻辑

打开你修改的controller.mustache模板,找到类定义的上方(比如类注解的位置),添加如下代码:

{{#info.vendorExtensions["x-enableEureka"]}}
@EnableEurekaClient
{{/info.vendorExtensions["x-enableEureka"]}}

这个逻辑的意思是:当info块下的x-enableEureka为true时,生成@EnableEurekaClient注解;如果值为false或者不存在,则不生成。

3. 验证模板生效的注意事项

  • 确保你修改的是Spring Boot对应的Controller模板:如果你是用本地模板覆盖,路径应该是templates/spring/controller.mustache,并且在生成代码时通过-t参数指定自定义模板目录。
  • 检查Swagger配置中x-enableEureka的类型:必须是布尔值true/false,不能是字符串(比如"true"),否则Mustache的条件判断不会生效。
  • 清理旧的生成文件:重新生成前删除之前生成的代码目录,避免缓存影响。

额外说明

如果你想把x-enableEureka放在Path块中控制单个Controller的注解生成,访问路径要改成{{vendorExtensions["x-enableEureka"]}},但全局控制的话放在info块下更合理。

内容的提问来源于stack exchange,提问作者Nimble Fungus

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.09 17:32:50