【发布时间】:2016-09-03 18:28:56
【问题描述】:
假设我有一个名为 SomeClass 的类,它在构造函数中取值并填充字段。
String text;
String sometext;
public someClass(String text, String sometext){
this.text = text;
this.sometext = sometext;
}
SomeClass 有一个创建新对象的方法。在 java 中,当我们创建一个新对象时,我们可以使用类似的值进行实例化
ClassName variable = new ClassName(text, sometext);
并像这样使用构造函数填充ClassName 中的字段
public ClassName(String text, String sometext){
this.text = text;
this.sometext = sometext;
}
但是在春季使用自动装配我们如何做到这一点?
@Autowired
public ClassName(SomeClass someClass){
this.text = someClass.text;
this.sometext = someClass.sometext;
}
这行不通。 spring如何知道SomeClass的实例是哪个
更新:
我错了。我没有以 DI 的方式思考。而不是自动装配SomeClass。我必须自动连接ClassName。
在没有 DI 的情况下,我在 ClassName 类的方法中创建了一个新对象
使用 DI 时,我必须在 ClassName 类的方法中自动装配
@Autowired
ClassName className;
我可以直接填充字段,使字段公开
className.text = text;
className.sometext = sometext;
我可以使用 javabeans。 但是如何通过构造函数来做。
注意:spring 配置没有任何问题。基础扫描已启用。
【问题讨论】: