使用@Import时未创建Bean

时间:2019-01-12 10:53:44

标签: java spring

我有一个类(例如A类),它@Autowire个属性类(B类)。从application.yml中读取B的字段,然后使用@Component创建一个bean。然后可以使用@Autowire在类A中使用此bean。

当我在同一模块中运行该应用程序时,所有Bean都创建正确,该应用程序运行。但是,当我从另一个模块的@Import(A.class)类(这是一个多模块项目)中执行@Configuration时,为类B创建的bean包含所有null值。这意味着它没有读取模块中的application.yml

这种行为背后的原因是什么?

1 个答案:

答案 0 :(得分:1)

我不确定这个问题,因为您尚未共享代码段或项目结构等。但是您是否尝试过使用

扫描软件包
@CoomponentScan(basepackages = {"package1","package2"}) 

在您的应用程序类之上。这样,spring就会知道在哪里可以找到所有的课程。

希望这会有所帮助。请添加代码段,项目结构等,以便我们了解问题并提供帮助。

如果不是这种情况,请参考此问题。

Why is my Spring @Autowired field null?