Spring不会从依赖项加载数据bean(@Repository)

时间:2018-03-14 14:32:40

标签: spring spring-boot dependencies spring-data spring-boot-configuration

场合

我有一个模块化的Spring Boot应用程序,它目前由applicationProject组成,它包含第一个子模块moduleA作为依赖项(maven)。

这允许applicationProject是一个java类,它初始化Spring应用程序,其中实际功能由定义为依赖项的模块提供。

我的所有模块以及applicationProject都在基础包com.mycompany.myproduct下面。

我的applicationProject java类看起来很简单:

@SpringBootApplication(scanBasePackages ="com.mycompany.myproduct")
public class MyApp {

    public static void main(String[] args) {
        SpringApplication.run(MyApp.class, args);
    }
}

在我的moduleA项目中,我不使用任何@ComponentScan注释或扩展名。

问题

当我以这种方式启动应用程序时,我得到一个 UnsatisfiedDependencyException ,而Spring尝试初始化一个bean ServiceA,它自己依赖于另一个bean RepositoryA都在moduleA中定义。

这让我假设Spring确实检测到bean,但是没有正确构建依赖树,导致bean实例化顺序错误。

添加时

@EnableJpaRepositories(basePackages = "com.mycompany.myproduct")
@EntityScan(basePackages = "com.mycompany.myproduct")

初始化MyApp类,spring正确加载bean并且应用程序成功运行。

对我而言,这似乎是一种解决方法,或者当我已经在@EnableJpaRepositories注释中声明基础包时,为什么我需要再次为@EntityScanSpringBootApplication声明基础包?< / p>

或者这是否因为独立的春季项目而存在缺陷?

0 个答案:

没有答案