【发布时间】:2017-08-06 10:01:10
【问题描述】:
我有一个 Maven 多模块项目。当尝试访问注入的 bean 时,我得到一个 Nullpointer 异常。
这是启动应用程序的主函数
public class App {
public static void main(String[] args) {
System.out.println("Startpoint");
DecisionMaker decisionMaker = new DecisionMaker();
decisionMaker.run();
}
}
这就是我在决策者中所做的
public class DecisionMaker {
@Inject
GameListener gm;
@Inject
BasicProductionManager basicProductionManager;
public DecisionMaker() {
System.out.println("this is the decisionmaker");
System.out.println(gm.toString());
}
所以这不是一个 bean,而是一个普通的 pojo
gamelistener 是我想要注入的 Applicationscoped bean。
@Named
@ApplicationScoped
public class GameListener extends DefaultBWListener {
@Inject
Event<OnFrameEvent> onFrameEvent;
public Mirror mirror = new Mirror();
public Game game;
public Player self;
@PostConstruct
public void init() {
System.out.println("init listener");
}
nullpointer 被抛出到 DecisionMaker 的构造函数中。没有调用@PostConscrutct init 方法
我研究了类似的问题,但我发现我需要我已经拥有的 PostConstruct 方法。
【问题讨论】:
-
有没有spring应用上下文?看起来不像 - 您如何期望
gm获得价值?谁/什么应该设置它? -
你用的是什么依赖注入框架?
-
javax javaee-api 7.0 provided javax.inject javax.inject 1 -
new不尊重注释。您需要正确地向框架询问实例。
标签: java maven code-injection