spring - google guice @Inject 在春季进行 DI @Autowired 时给出 null
问题描述
我在 Spring 框架和微服务架构中工作。我有一个类似MainClass.java
的课程,我正在LibraryClass.java
使用@AutoWired
. LibraryClass.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
依赖 jarLibraryClass.java
文件看起来像这样,我正在OtherLibraryClass.java
使用 google guice DI 注入@Inject
。OtherLibraryClass.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
是在游戏框架中构建的。这就是为什么我不想在依赖 jar 中进行更改。如果我们getData()
从其他 play framework serv 调用方法,它工作正常。只有在从 spring frameworks serv 调用时,我才面临这个问题
提前致谢
解决方案
推荐阅读
- javascript - 如何在 Three.js 中添加 PointerLockControl?
- java - 是否可以制作不可修改地图的可修改副本?
- vba - Ungrouping Word shapes causes loss of position
- git - Issue with git rebasing and merging that I need to rewind (not as simple as reverting)
- android - 使用 RecyclerView 而不是 TableLayout 的问题
- xml - 如何根据 XSLT 中的多个条件转换 xml1 和 xml2 的输出
- ios - 将播放按钮更改为单击时暂停
- react-native - 如何坚持 FlatList 的某些项目的底部?
- c - 如何将这个复杂的嵌套文件夹结构 C 库变成一个可包含在内的单个 C 库
- javascript - 在文档中添加一个很棒的字体按钮