Spring框架的核心就是依赖注入DI(dependency injection),通常也被叫做反转控制,DI的意思就是协调依赖对象之间合作的责任从对象自身中转移出来。
现在,有个PopSinger类(实现了Singer接口):
package entertainment;
public class PopSinger implements Singer {
private String name;
private Song song;
PopSinger() {
};
// 对应bean:name
public void setName(String name) {
this.name = name;
}
// 对应bean:song
public void setSong(Song song) {
this.song = song;
}
public void sing() {
System.out.print(name + " is singing : ");
song.showSong();
}
}
我们需要这个流行歌手(PopSinger)去唱歌,首先我们得知道她/他的名字(setName(…)),更重要的是我们需要给他一首他要唱的歌曲(setSong(…)):
<bean id="music" class="entertainment.PopMusic"></bean> <bean id="singerTarget" class="entertainment.PopSinger"> <property name="name" value="Michael Jackson"></property> <property name="song" ref="music"></property> </bean>