猿问

外部 Jar 不工作“无法自动装配”

在 IntelliJ IDEA 中,我收到以下错误:


无法自动装配。未找到“ExternalClass”类型的 bean。检查信息:检查 bean 类中的自动装配问题


背景:我提取了一部分代码,并将其作为工件上传,当我尝试在“主”代码中使用它时,出现错误,并且无法使用 maven 进行编译。


@Autowired

public ClassName (ExternalClass externalClass){

   this.externalClass = externalClass;

}

该工件是 POM 文件中的一个依赖项,它在自动完成时显示良好。


我尝试了几个类,每次都出现错误。


守着星空守着你
浏览 225回答 2
2回答

jeck猫

您需要@Configuration在提取的模块中定义一个并提供模块的扫描路径。@Configuration// add any packages where you have bean definitions here (ex: ExtractedClass package)@ComponentScan(basePackages = {"..."})public class ExtractedConfig {    // ...}然后,在使用依赖项的模块中,导入配置。@Configuration@Import(ExtractedConfig.class)public class MainConfig {    // ...}您在重构之前没有问题,因为提取的 bean 位于扫描路径中(因此有资格进行自动装配)。当您将它们移动到不再是这种情况的不同模块中时,您需要相应地调整扫描路径。

素胚勾勒不出你

我最终发现了这个问题,并正在分享以防其他人遇到同样的错误。为了使 autowire 和 spring 正常工作,工件需要与主项目相同的包结构。示例:如果主项目包结构为:com.domainname.something.myproject工件应该是:com.domainname.something.myproject.artifactname
随时随地看视频慕课网APP

相关分类

Java
我要回答