按照post中所述生成客户端库后
我正在尝试在使用者中使用此库,我在主类中添加了依赖项并添加了@EnableFeignClients
注释。
但是,在启动应用程序时,Spring抱怨存在不令人满意的依赖关系,从库中生成的带有注释@FeignClient
的接口似乎没有被扫描或实例化。
包括这样生成的swagger客户程序lib时,有什么具体的配置可做吗?
答案 0 :(得分:0)
我在同一个问题上苦苦挣扎了很长时间,我想分享一下我要暂时解决这个问题。默认情况下,swagger将使用旧的feign客户端而不是新的openfeign,因此您必须直接启用配置选项generateForOpenFeign
。另外,如果要使用java8,为避免生成默认接口(不执行任何操作),请将config选项defaultInterfaces
设置为false。
这是我的swagger_config.json
的样子:
{
"artifactId": "example-sdk",
"artifactVersion": "1.0.0",
"groupId": "com.example",
"apiPackage": "com.example.api",
"modelPackage": "com.example.model",
"configPackage": "com.example.configuration",
"generateForOpenFeign": true,
"java8": true,
"defaultInterfaces": false
}
生成源文件之后,我必须更新spring-cloud
中spring-boot-starter
和pom.xml
的依赖关系,以使源代码可编译。
这是我更新的内容:
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.1.5.RELEASE</version>
</parent>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-parent</artifactId>
<version>Greenwich.SR5</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
要使用生成的伪装客户端,我必须输入
@EnableFeignClients(basePackages = {"com.example.api"})
在我的客户端应用程序的主类中。
我知道这不是最好的解决方案,如果有人有更好的主意,请提出建议。