google guice @Inject在春季做DI @Autowired时给出null

时间:2020-04-23 15:41:06

标签: spring spring-boot dependency-injection playframework guice

我正在从事spring框架和微服务架构。我有一个像MainClass.java的类,因为我正在使用LibraryClass.java注入@AutoWiredLibraryClass.java内有data-lib.jar

import org.springframework.beans.factory.annotation.Autowired;
import com.data.LibraryClass;

public class MainClass {

    @Autowired
    LibraryClass libraryClass;

    String value = libraryClass.getData();
}

内部data-lib.jar依赖罐LibraryClass.java文件看起来像这样,我正在使用Google guice DI OtherLibraryClass.java注入@InjectOtherLibraryClass.java内也有data-lib.jar

package com.data;
import com.google.inject.Inject;

public class LibraryClass {

     @Inject
     OtherLibraryClass otherLibraryClass;

     public String getData() {
          return  otherLibraryClass.getValue(); // throwing null pointer exception      
     }

}

getData()调用MainClass.java方法时,它引发了空指针异常。看起来OtherLibraryClass.java实例不是Guice自动创建的。如果它是Guice创建的,则自动注入所有依赖项。

我不想更改data-lib.jar内部的任何内容。我可以更改MainClass.java,以便解决该问题。有什么办法可以正常工作,没有任何例外。

注意:data-lib.jar是在Play框架中构建的。这就是为什么我不想在依赖项jar中进行更改。如果我们从其他播放框架serv调用getData()方法,则它工作正常。只有从spring框架serv调用时,我才面临这个问题

预先感谢

0 个答案:

没有答案
相关问题