码迷,mamicode.com
首页 > 编程语言 > 详细

springday02-go2

时间:2016-08-14 11:28:00      阅读:148      评论:0      收藏:0      [点我收藏+]

标签:

1.复制xml文件到container.auto下
2.Waiter类实现构造函数
3.Bar类中Waiter作为其成员变量,并实现其get/set方法,有参和无参构造器,toString方法
4.分别修改xml中bean为自动装配,byName,byType,constructor三种方式,测试自动装配

技术分享

Bar.java:

package container.auto;

public class Bar {

private Waiter wt;


public Waiter getWt() {
return wt;
}

public void setWt(Waiter wt) {
System.out.println("setWt方法.....");
this.wt = wt;
}

public Bar() {
System.out.println("Bar的无参构造器");
}

public Bar(Waiter wt) {
System.out.println("Bar的有参构造器");
this.wt = wt;
}

//此处是自动生成(使用source)
@Override
public String toString() {
return "Bar [wt="+ wt +"]";

}


}

Waiter.java:

package container.auto;

public class Waiter {

public Waiter() {
System.out.println("Waiter的无参构造器");
}

}

xml:


<bean id="wt" class="container.auto.Waiter"/>
<!--
<bean id="wt2" class="container.auto.Waiter"/>
-->
<!-- autowire属性:让容器自动装配(自动注入依赖关系)
byName:容器查找和属性名称一致的bean,然后调用set方法来完成注入
如果找不到对应的bean,注入null
-->
<bean id="bar1" class="container.auto.Bar"
autowire="byName"/>
<!-- byType:容器查找属性类型一致的bean,然后调用set方法来完成注入。
如果找不到对应的bean,注入null,如果找到多个,则报错-->
<bean id="bar2" class="container.auto.Bar"
autowire="byType"/>

<!-- constructor:容器查找与属性类型一致的bean,然后调用
构造器来完成注入,如果找不到bean,则注入null,如果找到多个,则报错 -->
<bean id="bar3" class="container.auto.Bar"
autowire="constructor"/>

TestCase.java:

package container.auto;

import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

public class TestCase {

@Test
public void test1(){
String cfg = "container/auto/applicationContext.xml";
ApplicationContext ac =
new ClassPathXmlApplicationContext(cfg);
// Bar bar1 = ac.getBean("bar1",Bar.class);
// System.out.println(bar1);
// Bar bar2 = ac.getBean("bar2",Bar.class);
// System.out.println(bar2);
Bar bar3 = ac.getBean("bar3",Bar.class);
System.out.println(bar3);
}
}

测试结果:

技术分享

思考为什么会输出前面的语句?因为在xml中定义bean则会初始化构造函数。这里自动装配使用的是set方式。

 

springday02-go2

标签:

原文地址:http://www.cnblogs.com/lchzls/p/5769598.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!