我在学习如何使用Spring之前尝试理解依赖注入。我的问题是,在下面的基于Setter的依赖注入的例子中,为什么没有TextEditor类的构造函数?我们这里不需要构造函数吗?非常感谢您的帮助!!
(代码来自:http://www.tutorialspoint.com/spring/setter_based_dependency_injection.htm)
package com.tutorialspoint;
public class TextEditor {
private SpellChecker spellChecker; //Q: Why not a constructor for TextEditor, but only a class variable?
// a setter method to inject the dependency.
public void setSpellChecker(SpellChecker spellChecker) {
System.out.println("Inside setSpellChecker." );
this.spellChecker = spellChecker;
}
// a getter method to return spellChecker
public SpellChecker getSpellChecker() {
return spellChecker;
}
public void spellCheck() {
spellChecker.checkSpelling();
}
}
答案 0 :(得分:2)
如果您未明确声明构造函数,则会自动添加默认的无参数公共构造函数。来自tutorials,
您不必为您的班级提供任何构造函数,但在执行此操作时必须小心。 编译器会自动为任何类提供无参数的默认构造函数 构造
Spring容器将使用此构造函数来实例化对象。