有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java在创建facade组件时向Spring上下文添加特定组件

我不想让我的一些类@Autowire变成许多小的@Component,而是想创建一个@Component来收集并转发给较小的@Component

编码本身并不太困难,但是当涉及到测试时,它变得很麻烦,因为现在我必须将它添加到@ContextConfiguration(classes)。有没有办法让我不必单独管理它

使用@ComponentScan添加我可能不想要的整个包,因为它将触发更多的@MockBean被创建


共 (1) 个答案

  1. # 1 楼答案

    在我看来,你正在寻找的是@Configuration + @Bean的组合。您可以通过@Bean初始化整个链,并使用简单的pojo-s而不是spring管理的bean,而不是用@Component标记所有嵌套的子组件。当然,最终的结果将是一个spring管理的bean,但在初始化过程中,您可以在任何地方使用spring或不使用spring对其进行初始化

    关于复合扫描。通常,如果我只想加载一个特定的部分,我会创建一个注释,带有我想要的conponenbt扫描的明确模式,然后在我想要的域中使用它

    例如,假设我们有两组映射器类,一个是关于订单的,另一个是关于库存的。我可以在注释@EnableOrderMappers和注释@EnableInventoryMappers上创建适当的组件扫描注释