Java 构造函数上的编译时编织和自动连接
我使用编译时编织并调用Java 构造函数上的编译时编织和自动连接,java,spring,dependency-injection,Java,Spring,Dependency Injection,我使用编译时编织并调用newtestclass(var)。我在构造函数上使用依赖注入,如上面的“otherClass”。它打印出“空”。根据我的测试,依赖项注入“otherClass”无法在构造函数中初始化。我应该怎么做才能允许在“构造函数”上注入依赖项呢?我猜(但不知道100%)自动连线是在对象创建之后发生的。(我的意思是我知道它适用于普通的SpringBean,适用于普通的类,但不适用于@Configurable的100%) 这意味着您不能期望在创建对象时填充自动连接字段allready 如
newtestclass(var)
。我在构造函数上使用依赖注入,如上面的“otherClass”。它打印出“空”。根据我的测试,依赖项注入“otherClass”无法在构造函数中初始化。我应该怎么做才能允许在“构造函数”上注入依赖项呢?我猜(但不知道100%)自动连线是在对象创建之后发生的。(我的意思是我知道它适用于普通的SpringBean,适用于普通的类,但不适用于@Configurable的100%)
这意味着您不能期望在创建对象时填充自动连接字段allready
如果添加创建后调用的第二个方法printStats,则可以检查这一点
@Configurable
public TestClass(){
@Autowired SomeOtherClass otherClass;
public TestClass(Var1 var){
System.out.println(otherClass);
}
}
我猜(但不知道100%)自动连线发生在对象创建之后。(我的意思是我知道它适用于普通的SpringBean,适用于普通的类,但不适用于@Configurable的100%)
这意味着您不能期望在创建对象时填充自动连接字段allready
如果添加创建后调用的第二个方法printStats,则可以检查这一点
@Configurable
public TestClass(){
@Autowired SomeOtherClass otherClass;
public TestClass(Var1 var){
System.out.println(otherClass);
}
}
支持拉尔夫的回答 来自Spring文档 字段在构造bean之后,在调用任何配置方法之前被注入
支持拉尔夫的回答 来自Spring文档 字段在构造bean之后,在调用任何配置方法之前被注入 HTH请查看Spring文档部分中的注释 它显示了
@Configurable
属性,用于在构造函数中的代码之前强制注入
public class TestClass {
...
public void printStats(){
System.out.println(otherClass);
}
}
...
new TestClass(var).printStats();
将该属性添加到上面的代码将停止System.out.println(otherClass)
从null
查看Spring文档中的注释部分
它显示了@Configurable
属性,用于在构造函数中的代码之前强制注入
public class TestClass {
...
public void printStats(){
System.out.println(otherClass);
}
}
...
new TestClass(var).printStats();
将该属性添加到上面的代码将停止
System.out.println(otherClass)
从null开始
是的,我意识到不能像你提到的那样在ConstructUCTR中使用autowired=)所以,想知道有什么解决方法吗?有一个特殊的原因,你需要在构造过程中采取行动,你想为其他类设置属性或调用方法吗?是的,我意识到不能像你提到的那样在ConstructUCTR中使用autowired=)所以,想知道在构建过程中需要采取哪些措施,是否需要为otherClass设置属性或调用方法?