我最近开始使用Spring框架。我在一本书中找到了这个例子:
public class DamselRescuingKnight implements Knight {
private RescueDamselQuest quest;
public DamselRescuingKnight() {
this.quest = new RescueDamselQuest();
}
public void embarkOnQuest() {
quest.embark();
}
}使用依赖项注入,示例如下:
public class DamselRescuingKnight implements Knight {
private Quest quest;
public DamselRescuingKnight(Quest quest) {
this.quest = quest;
}
public void embarkOnQuest() {
quest.embark();
}
}而xml文件配置是:
<bean id="knight" class="com.springinaction.knights.DamselRescuingKnight">
<constructor-arg ref="quest" />
</bean>
<bean id="quest" class="com.springinaction.knights.somethingThatImplementsQuest">
</bean>为了完全理解这个概念,您能编写一个仅使用Java (没有Spring,所以没有xml文件)的依赖注入相同类的替代示例吗?
发布于 2016-10-10 19:55:30
这相当于配置文件中的依赖项注入。唯一的区别是您的Quest对象是在BraveKnight实例之后创建的。
public class BraveKnight {
private Quest quest;
public BraveKnight(Quest quest) {
this.quest = quest;
}
}
public class Quest {
}
public class Main {
public static void main (String[] args) {
Quest quest = new Quest();
BraveKnight knight = new BraveKnight(quest);
}
}https://stackoverflow.com/questions/39965746
复制相似问题