![](/img/trans.png)
[英]Spring NoClassDefFoundError org.springframework.beans.FatalBeanException when adding <context:component-scan …> in the config
[英]Adding a specific components to the Spring Context when creating a facade component
与其让我的一些类@Autowire
很多小的@Component
,我想创建一个单独的@Component
来收集并转发到较小的@Component
。
编码本身并不太难,但是当涉及到测试时,它变得很麻烦,因为现在我必须将它添加到@ContextConfiguration(classes)
。 有没有办法让我不必单独管理它?
使用@ComponentScan
添加我可能不想要的整个包,因为它会触发更多的@MockBean
被创建。
在我看来,您正在寻找的是@Configuration + @Bean
的组合。 您可以通过@Bean
初始化完整的链,而不是使用 @Component 标记所有嵌套的子组件,并使用简单的 pojo-s 而不是 spring 管理的 bean。 当然,最终的结果将是一个 spring 管理的 bean,但是在初始化过程中,您可以在任何地方使用 spring 或不使用 spring 对其进行初始化。
关于 ComponetScan。 通常,如果我只想加载某个部分,我会使用我想要的 conponenbt 扫描的显式模式创建注释,然后我在我想要的域中使用它。
例如,假设我们有两组 Mapper 类,一组是关于订单的,另一组是关于库存的。 我可以创建注释@EnableOrderMappers
和注释@EnableInventoryMappers
,并在其上添加适当的组件@EnableInventoryMappers
注释。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.