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的更多相关文章

  1. Spring-day02

    Annotation复习:1,Annotation:作为类型的元数据; 1,给类型加标记; 2,annotation可以添加各种类型的属性;2,Annotation的上的标记: 1),target:标 ...

  2. go2基本类型

    /* Go基本类型 布尔型:bool - 长度:1字节 - 取值范围:true, false - 注意事项:不可以用数字代表true或false 整型:int/uint - 根据运行平台可能为32或6 ...

  3. 后端程序员之路 52、A Tour of Go-2

    # flowcontrol    - for        - for i := 0; i < 10; i++ {        - for ; sum < 1000; {        ...

  4. Tomcat服务器进击

    一.Tomcat服务器端口配置更改 Tomcat的所有配置都放在conf文件夹之中,server.xml文件就是配置的核心文件. 现在呢,我们需要将8080端口设置成8088端口. 启动端口默认: & ...

  5. jQuery动画与特效详解

    本文主要是讲解和学习jQuery的自动显隐,渐入渐出等. 1.显示和隐藏hide()和show() 对于动画来说,显示和隐藏是最基本的效果之一,本节简单介绍jQuery的显示和隐藏. 代码如下: &l ...

  6. struts2.5的配置及其注意事项

    坑爹的apache,官方的jar包提供了一个struts2的运行最小jar包

  7. Cordova+Asp.net Mvc+GIS跨平台移动应用开发实战1-系统初步搭建(附演示,apk,全部源码)

    1.前言 身处在移动互联网的今天,移动应用开发炙手可热,身为程序猿的我们怎么能错过开发一款我们自己的APP.本人算是一个基于.net的GIS开发入门者(马上就大四啦), 暑假在学校参加GIS比赛有大把 ...

  8. PHP+ajaxfileupload与jcrop插件结合 完成头像上传

    昨天花了点时间整合了一下头像插件 东拼西凑的成果 先来看下效果

  9. Moon.Orm性能报告

    以下为有网友公司的评估测试及使用规范 大家可以下载word看看 http://pan.baidu.com/s/1hquvRuc 一.和ADO.NET进行的压力测试 说明:2000并发用户,此图为一网友 ...

  10. java web学习总结(三) -------------------TOMCAT使用帮助(二)

    一.打包JavaWeb应用 在Java中,使用"jar"命令来对将JavaWeb应用打包成一个War包,jar命令的用法如下:

随机推荐

  1. 用正则验证字符串格式,形如:A)XXX B)XXXX C)XXX

    今天遇到个小功能,要验证某个英文选项是否正确,例如:A)accumulate B)circling C)communities  D)competition  E)domestic F)financi ...

  2. Qt 之 设置窗口边框的圆角(使用QSS和PaintEvent两种方法)

    Qt在设置窗口边框圆角时有两种方式,一种是设置样式,另一种是在paintEvent事件中绘制窗口.下面分别叙述用这两种方式来实现窗口边框圆角的效果. 一.使用setStyleSheet方法 this- ...

  3. 设计模式:单例模式(Singleton)

    定义:确保一个类仅有一个实例,并提供一个访问它的全局访问点. 优点:在内存中只有一个对象,节省了内存空间 示例: Singleton.cs 写法一:非线程安全 public class Singlet ...

  4. 关于Bitcode的探索

    Bitcode概述         Bitcode is an intermediate representation of a compiled program. Apps you upload t ...

  5. ArcGIS Engine开发之旅09--几何对象和空间参考

    原文:ArcGIS Engine开发之旅09--几何对象和空间参考 1.Geometry  Geometry 是 GIS 中使用最为广泛的对象集之一,用户在创建.删除.编辑和进行地理分析的时候,就是处 ...

  6. Marriage Match IV---hdu3416(spfa + Dinic)

    题目链接:http://acm.split.hdu.edu.cn/showproblem.php?pid=3416 有一个有向图,n个点,m条边,给一个起点和终点,求出从起点到终点的最短路共有几条,每 ...

  7. iOS面试题 02

    在面试的时候,面试官问我,“你对内存管理了解的多吗?” 我忘了当时是怎么回答的了,但是,肯定是一时没想起来怎么回答. 1.谁创建谁释放 2.autoreleasepool 3.retain,copy, ...

  8. setContentScaleFactor 设置图片的分辨率

    float scale = [[UIScreenmainScreen] scale];//得到设备的分辨率 [imageView setContentScaleFactor:[[UIScreen ma ...

  9. PySe-003-Se-WebDriver 启动浏览器之一 - Firefox

    此文主要演示 MacOX 下 WebDriver 启动 Firefox 浏览器,因 WebDriver 对 Firefox 浏览器是原生支持的,因而无需像启动其他浏览器一样需要相对应的 driver. ...

  10. oracle 条件语句的写法

    1.基本的if else DECLARE I ; BEGIN THEN DBMS_OUTPUT.PUT_LINE('TRUE'); ELSE DBMS_OUTPUT.PUT_LINE('FALSE') ...