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

如何使用OpenAPI Generator生成FeignClient接口及带Lombok注解的模型?

如何使用OpenAPI Generator生成FeignClient接口及带Lombok注解的模型?

嘿,我来帮你搞定这个问题!你提到用openapi-generator-maven-plugin从OpenAPI spec生成Feign客户端和模型,我刚好做过类似的配置,下面一步步给你讲清楚怎么弄:

首先,你得在项目的pom.xml里配置好这个Maven插件,同时开启Feign和Lombok的支持。我给你整理了一份完整的配置示例,你可以直接参考:

<build>
    <plugins>
        <plugin>
            <groupId>org.openapitools</groupId>
            <artifactId>openapi-generator-maven-plugin</artifactId>
            <version>6.6.0</version> <!-- 建议用最新的稳定版本,功能更全 -->
            <executions>
                <execution>
                    <id>generate-review-feign-clients</id>
                    <goals>
                        <goal>generate</goal>
                    </goals>
                    <configuration>
                        <!-- 这里填你的OpenAPI spec文件路径,比如你示例里的那个yaml -->
                        <inputSpec>${project.basedir}/src/main/resources/openapi/review-apis.yaml</inputSpec>
                        <!-- 指定生成器类型为spring,这样才能适配Spring生态的Feign -->
                        <generatorName>spring</generatorName>
                        <!-- 生成代码的输出目录,默认在target下,也可以自定义 -->
                        <output>${project.build.directory}/generated-sources/openapi</output>
                        <!-- 下面是关键的配置项,专门用来开启Feign和Lombok支持 -->
                        <configOptions>
                            <!-- 核心开关:开启Feign客户端生成,对应你OpenAPI里的接口 -->
                            <feign>true</feign>
                            <!-- 让生成的模型类用Lombok注解,替代冗余的getter/setter -->
                            <useLombok>true</useLombok>
                            <!-- 可选:只生成接口定义,不生成默认实现类,代码更清爽 -->
                            <interfaceOnly>true</interfaceOnly>
                            <!-- 可选:指定基础包名,避免生成的代码散在默认包下 -->
                            <basePackage>com.yourcompany.review.api</basePackage>
                            <apiPackage>com.yourcompany.review.api.client</apiPackage>
                            <modelPackage>com.yourcompany.review.api.model</modelPackage>
                            <!-- 可选:给OpenAPI里标记为required的字段生成@NonNull注解,和Lombok适配更好 -->
                            <useBeanValidation>true</useBeanValidation>
                        </configOptions>
                    </configuration>
                </execution>
            </executions>
        </plugin>
    </plugins>
</build>

关键配置说明

  • <feign>true</feign>:这是生成Feign客户端的核心开关,开启后,你OpenAPI里的createNewReview这类接口会自动生成带@FeignClient注解的接口类,直接就能在Spring项目里注入使用。
  • <useLombok>true</useLombok>:开启后,像你示例里的Review模型类,会自动带上@Data(或对应版本的Lombok注解),不用再生成一堆getter、setter、toString方法,完全符合Lombok的使用习惯。
  • <interfaceOnly>true</interfaceOnly>:如果你只需要Feign的接口定义,不需要生成默认的实现类,开这个选项能让生成的代码更简洁。

额外的依赖准备

别忘了在项目里引入Lombok和Feign的依赖,不然生成的注解会报错:

<!-- Lombok依赖 -->
<dependency>
    <groupId>org.projectlombok</groupId>
    <artifactId>lombok</artifactId>
    <version>1.18.28</version>
    <scope>provided</scope>
</dependency>

<!-- Spring Cloud OpenFeign依赖,根据你的Spring版本调整 -->
<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-openfeign</artifactId>
</dependency>

执行生成

配置好之后,只需要运行这条Maven命令就能生成代码了:

mvn clean compile

生成的代码会在target/generated-sources/openapi目录下,你可以把这个目录设置成IDE的源码目录,直接在项目里引用生成的Feign接口和模型类。

备注:内容来源于stack exchange,提问作者Jeff

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.13 17:28:11