我有依赖于项目A(com.webfx)的项目B(com.embos)。我将导入项目A作为项目B中的依赖项。 这是我对项目B的评价:
<dependency>
<groupId>com.webfx</groupId>
<artifactId>com.webfx</artifactId>
<version>1.0</version>
<type>jar</type>
</dependency>
当我清理和构建时,它是返回错误:
java.lang.IllegalStateException:无法加载ApplicationContext 由以下原因引起:org.springframework.beans.factory.UnsatisfiedDependencyException:创建名称为“ pilahServiceImpl”的bean时出错:通过字段“ auditTrailService”表示的不满足的依赖关系;嵌套的异常是org.springframework.beans.factory.NoSuchBeanDefinitionException:没有类型为'com.webfx.sys.bpm.AuditTrailService'的合格Bean:应该至少有1个有资格作为自动装配候选的Bean。依赖项注释:{@ org.springframework.beans.factory.annotation.Autowired(required = true)} 由以下原因导致:org.springframework.beans.factory.NoSuchBeanDefinitionException:没有类型为“ com.webfx.sys.bpm.AuditTrailService”的合格Bean:预计至少有1个有资格作为自动装配候选的Bean。依赖注释:{@ org.springframework.beans.factory.annotation.Autowired(required = true)}
结果:
错误:
EmbosApplicationTests.contextLoads»IllegalState无法加载ApplicationCo ...
在我的PilahServiceImpl
中,那些使用auditTrailService
的人@Autowired.
这是我的PilahServiceImpl类:
@Service
public class PilahServiceImpl implements PilahService {
@Autowired
private PilahRepository repoPilah;
@Autowired
private EmbosRepository repoEmbos;
@Autowired
private AuditTrailService auditTrailService;
...
}
为什么会这样?感谢您的关注
答案 0 :(得分:0)
您已经忘记将AuditTrailService的依赖项注入到ApplicationContext。您必须使用(@ Bean,@ Component等)和@ComponentScan之一添加AuditTrailService的实例,以扫描定义注入的类/程序包。 我可以通过下面的代码来复制此异常:
@RestController
@EnableAutoConfiguration
@ComponentScan("com.webfx.sys.bpm")
public class Example {
@Autowired
TestDao dao;
}
在TestDao上添加@Component批注,在Example上添加@ComponentScan即可解决此问题。
答案 1 :(得分:0)
如果在服务器启动时使用配置加载此bean。只要在您的项目中添加此类,它就应该开始加载bean。
添加配置
@Configuration
public class MyConfiguration {
@Bean
public AuditTrailService auditTrailService() {
return new AuditTrailService();
}
}