为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

守着星空守着你 2021-12-22 18:54:30
在 IntelliJ IDEA 中,我收到以下错误:无法自动装配。未找到“ExternalClass”类型的 bean。检查信息:检查 bean 类中的自动装配问题背景:我提取了一部分代码,并将其作为工件上传,当我尝试在“主”代码中使用它时,出现错误,并且无法使用 maven 进行编译。@Autowiredpublic ClassName (ExternalClass externalClass){   this.externalClass = externalClass;}该工件是 POM 文件中的一个依赖项,它在自动完成时显示良好。我尝试了几个类,每次都出现错误。
查看完整描述

2 回答

?
jeck猫

TA贡献1909条经验 获得超7个赞

您需要@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 位于扫描路径中(因此有资格进行自动装配)。当您将它们移动到不再是这种情况的不同模块中时,您需要相应地调整扫描路径。


查看完整回答
反对 回复 2021-12-22
?
素胚勾勒不出你

TA贡献1827条经验 获得超9个赞

我最终发现了这个问题,并正在分享以防其他人遇到同样的错误。为了使 autowire 和 spring 正常工作,工件需要与主项目相同的包结构。示例:如果主项目包结构为:

com.domainname.something.myproject

工件应该是:

com.domainname.something.myproject.artifactname


查看完整回答
反对 回复 2021-12-22
  • 2 回答
  • 0 关注
  • 224 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信