【发布时间】:2019-02-12 15:12:38
【问题描述】:
我是一只新蜜蜂,正在使用微服务(Spring Boot,Spring Cloud),我试图在另一个微服务中使用资源文件。为此,我需要通过 ComponentScan 在另一个模块中扫描该模块。
就像我有一个管理模块,我需要在其中自动装配主模块中的主资源。所以我使用:
@ComponentScan(basePackages = {"com.example.admin","com.example.main"}
我在 AdminApplication 文件中使用了它。现在它还在 Admin 中显示了我不想要的主模块控制器。我谷歌它并申请:
@ComponentScan(basePackages =
{"com.example.admin","com.example.main"},
excludeFilters = {@ComponentScan.Filter(type = ASSIGNABLE_TYPE,
value = {
UserController.class,
CustomerController.class,
SchoolController.class
})})
但它仍然在管理模块中显示此主模块控制器。如何实际排除这个?请帮我。
【问题讨论】:
-
你为什么要他们被排除在外?
-
我正在使用 swagger 进行测试。我只需要它自己的控制器来测试(管理员)并且不想在管理员路径中看到主控制器。
-
能否也分享一下你的微服务的文件夹结构?
-
每个微服务都有自己的 MVC。和微服务通过 Eureka 和 zuul 进行通信
-
当我尝试在 admin 的控制器中自动连接 main 的资源类时会出现此问题。那个时候我也需要扫描主模块以获取存储库、资源和其他类。
标签: spring-boot configuration microservices component-scan