如何将另一个项目A连接到项目B作为java springboot中的代理?

时间:2018-09-11 16:29:09

标签: java maven spring-boot dependencies

我有依赖于项目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;
...
}

为什么会这样?感谢您的关注

2 个答案:

答案 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();

}
}