NPE从依赖项目自动装配

时间:2018-05-05 03:10:32

标签: spring maven

这是我的项目结构,

父项目 - >                 的pom.xml                   (子模块核心,网络,服务)

            core prj -->
                pom.xml
            web prj --> has core,services dependency and has ComponentScan for com.aaa.bbb
                pom.xml

            services prj --> has core, web dependency
                pom.xml

客户项目 - >         pom.xml(子模块xxx,yyy)

    xxx --> 
        pom.xml

    yyy --> has core dependency 
        pom.xml

xxx和yyy jars用于核心项目,战争由web项目构建。

当我在yyy项目中自动装配服务/存储库时,我正在获得服务/存储库的NPE。

任何人都可以告诉我如何从核心项目服务/存储库中自动装配yyy项目中的服务/存储库吗?

谢谢,

1 个答案:

答案 0 :(得分:0)

为了能够从库中自动装配bean,您有两个选择:

  1. 如果您有权访问库代码(我认为这是您的情况):

    1.1添加注释以标记哪个类是bean(使用@Component@Service,...)

    1.2在您的配置类(具有@Configuration@SpringBootApplication@ComponentScan ...的类)中,添加xxxyyy项目的路径类路径

    @Configuration
    @ComponentScan("com.my.package.xxx,com.my.package.yyy")
    public class YourApplication
    
  2. 如果您无权访问库代码

    2.1在配置类中,创建一个@Bean带注释的方法并在此处初始化bean。

    @Bean
    public XRepository getXRepository() {
     return new XRepositoryImpl(); // Here is your initialization logic
    }