gpt4 book ai didi

java - CDI注入(inject)顺序和构造函数

转载 作者:行者123 更新时间:2023-11-29 07:47:37 25 4
gpt4 key购买 nike

简单的问题,但我无法解决。据我所知,首先初始化字段,然后调用构造函数。

下面的代码

public class Controller {

@Inject
private ReadCommand readCommand;

public Controller() {
if (readCommand==null){
System.out.println("NO");
}else{
System.out.println("YES");
}
}
}

打印编号。但是当我注入(inject)构造函数时

@Inject
public Controller(ReadCommand readCommand)

它打印 YES。我做错了什么?

最佳答案

你没有做错任何事。在注入(inject)过程中多次调用构造函数。只有在构建托管 bean 之后,这些字段才会被注入(inject)到托管 bean 中。当您进行构造函数级注入(inject)时,您的构造函数需要阅读:

private ReadCommand readCommand;

@Inject
public Controller(ReadCommand readCommand) {
this.readCommand = readCommand;
if(this.readCommand == null) {
...
}
}

关于java - CDI注入(inject)顺序和构造函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24248449/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com