跨 Maven 项目自动装配 FeignClient
Autowire FeignClient across maven Project
我有使用 Spring-boot、Maven 和 Kotlin 构建的项目。
我想在一个maven项目中暴露一些Services和FeignClients,以便其他人可以使用它们。
对于带有 @Service 之类的注释的 class,效果很好。但我还需要公开 FeignClients,它用@FeignClient 注释,但看起来其他项目不是
能够注入那些客户。我必须在 pom.xml 中配置一些东西吗?
我正在使用 spring-cloud-starter-openfeign
这是一些代码。
我的 FeignClient 看起来像:
...
@FeignClient(name = "MyAPIClient", url = "${url}", configuration = [MyApiClientConfiguration::class])
interface MyAPIClient {
...
然后我尝试将该客户端注入另一个项目,如下所示:
...
@Service
class MyService(val myAPIClient: MyAPIClient) {
...
错误很明显。它说,没有名为 MyAPIClient 的 bean。所以不是
可见或可用。 "Consider defining a bean of type 'com.mycomp.MyAPIClient' in your configuration."
我是否必须明确配置某些内容才能将 OpenFeignClient 公开到我 pom.xml 中的其他项目?
感谢您的帮助
如果两个项目中的包结构相同,它会自动运行。 See默认情况下如何搜索假冒客户。
在其他情况下,您需要指定 basePackages
of basePackageClasses
attributes of @EnableFeignClients
annotation(在您需要注入 feign client 的应用程序中)。请注意,如果您这样做,则默认行为(扫描放置此注释的当前包)将停止工作,因此在这种情况下您也需要手动指定它。
我有使用 Spring-boot、Maven 和 Kotlin 构建的项目。 我想在一个maven项目中暴露一些Services和FeignClients,以便其他人可以使用它们。
对于带有 @Service 之类的注释的 class,效果很好。但我还需要公开 FeignClients,它用@FeignClient 注释,但看起来其他项目不是 能够注入那些客户。我必须在 pom.xml 中配置一些东西吗? 我正在使用 spring-cloud-starter-openfeign
这是一些代码。 我的 FeignClient 看起来像:
...
@FeignClient(name = "MyAPIClient", url = "${url}", configuration = [MyApiClientConfiguration::class])
interface MyAPIClient {
...
然后我尝试将该客户端注入另一个项目,如下所示:
...
@Service
class MyService(val myAPIClient: MyAPIClient) {
...
错误很明显。它说,没有名为 MyAPIClient 的 bean。所以不是 可见或可用。 "Consider defining a bean of type 'com.mycomp.MyAPIClient' in your configuration."
我是否必须明确配置某些内容才能将 OpenFeignClient 公开到我 pom.xml 中的其他项目?
感谢您的帮助
如果两个项目中的包结构相同,它会自动运行。 See默认情况下如何搜索假冒客户。
在其他情况下,您需要指定 basePackages
of basePackageClasses
attributes of @EnableFeignClients
annotation(在您需要注入 feign client 的应用程序中)。请注意,如果您这样做,则默认行为(扫描放置此注释的当前包)将停止工作,因此在这种情况下您也需要手动指定它。