测试2中的例子
package
pojo;
import
org.springframework.context.ApplicationContext;
import
org.springframework.context.support.ClassPathXmlApplicationContext;
public
class
Text {
public
static
void
main(String arg[]){
ApplicationContext ac =
new
ClassPathXmlApplicationContext(
“applicationContext.xml”
);
Person xiao = (XiaoMing)ac.getBean(
“xiaoming”
);
xiao.eat();
}
}
Spring
构造器注入
很快晓峰已经工作一年了,每天重复干着简单的工作很是无聊啊.不过社会总是在不断进步的。Roh Johnosn这个Spring国里著名的科学家有发明了一种机器。他能在孩子喊没有出生时就能知道这个孩子的一些基本需要。
晓峰听说现在这种机器很快就要装配到他们这里了,在这里工作一年了,因为还记着在地球的三国厚黑学,所以晓峰的人缘在这里还是很不错的.很早便打了报告希望到这个正在组建的“构造注入”部门工作.
今天晓峰接到通知,他可以去“构造注入”这个新部门了。晓峰明天就要去医院的接生部上班了.
晓峰拿到仪器到了预备接生部,给每一位即将出生的孩子进行预测
比如现在这个即将出生的孩子,他以后长大后会是一个很好的语言学家。晓峰要做到就是写封邮件发回总部。公务员会给他准备好各种语言类的图书
现在我们用java描述一下这件事情
Public class Baby {
Public Language lang;
Public Baby(Languange lang){
This.lang = lang;
}
Public void sayLanguage(){
System.out.println(“say”+lang.getname);
}
}
Public class Languange{
Public String name=”
英语”;
Public Language(){}
Public String getName(){
Return name;
}
}
Xml
文件如下
<beans>
<bean id=”baby” class=”Baby”>
<constructor-arg ref=”language” />—->
构造注入
</bean>
<bean id=”language” class=”Language”/>
</beans>
测试文件
Test.java
文件
Public class Test{
Public static void mian(String[] args){
ApplicationContext ac =
new ClassPathXmlApplicationContext(“bean.xml”);
Baby b = (Baby)ac.getBean(“baby”);
b.sayLanguage();
}
}
结果是:say英语
其中xml文件描述的内容相当于下面的程序
Language lang = new Language();
Baby b = new Baby(lang);
两种注入方式的比较
这两种注入方式无所谓好与坏
值注入就相当于下面的样子
Person p = new Person();
p.setName(&#