我是一只新蜜蜂,正在使用微服务(Spring Boot,Spring Cloud),其中我试图在另一个服务中使用微服务的资源文件。为此,我需要通过ComponentScan在另一个模块中扫描该模块。
就像我有一个Admin模块,我需要在其中自动装配主模块中的Main Resource。所以我使用:
@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
})})
但是它仍然在管理模块中显示此主模块控制器。如何实际排除呢?请帮我。
答案 0 :(得分:0)
我想,借助JavaConfig(@Configuration)和@Profile批注,您可以根据需要设置“输入和输出”类的微妙组合。 但是您必须在主类上禁用@ComponentScan(也许不要使用@SpringBootApplication,因为它嵌入了@ComponentScan)。
恕我直言,您应该将您的应用程序/服务模块化,将公共资源构建为单独的JAR,并将每个服务构建为独立的Maven模块
答案 1 :(得分:0)
感谢您的建议。终于我得到了答案。
Swashbuckle构建在WebApi的内置元数据层ApiExplorer的顶部。如果您使用以下属性装饰控制器或动作:
def move(self, speed=5): # chase movement if self.rect.x > self.player.rect.x: # Movement along x direction self.rect.x -= speed elif self.rect.x < self.player.rect.x: self.rect.x += speed if self.rect.y < self.player.rect.y: # Movement along y direction self.rect.y += speed elif self.rect.y > self.player.rect.y: self.rect.y -= speed
这将最终导致整个控制器或单个动作从Swagger输出中省略。