springday02-go2
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的更多相关文章
- Spring-day02
Annotation复习:1,Annotation:作为类型的元数据; 1,给类型加标记; 2,annotation可以添加各种类型的属性;2,Annotation的上的标记: 1),target:标 ...
- go2基本类型
/* Go基本类型 布尔型:bool - 长度:1字节 - 取值范围:true, false - 注意事项:不可以用数字代表true或false 整型:int/uint - 根据运行平台可能为32或6 ...
- 后端程序员之路 52、A Tour of Go-2
# flowcontrol - for - for i := 0; i < 10; i++ { - for ; sum < 1000; { ...
- Tomcat服务器进击
一.Tomcat服务器端口配置更改 Tomcat的所有配置都放在conf文件夹之中,server.xml文件就是配置的核心文件. 现在呢,我们需要将8080端口设置成8088端口. 启动端口默认: & ...
- jQuery动画与特效详解
本文主要是讲解和学习jQuery的自动显隐,渐入渐出等. 1.显示和隐藏hide()和show() 对于动画来说,显示和隐藏是最基本的效果之一,本节简单介绍jQuery的显示和隐藏. 代码如下: &l ...
- struts2.5的配置及其注意事项
坑爹的apache,官方的jar包提供了一个struts2的运行最小jar包
- Cordova+Asp.net Mvc+GIS跨平台移动应用开发实战1-系统初步搭建(附演示,apk,全部源码)
1.前言 身处在移动互联网的今天,移动应用开发炙手可热,身为程序猿的我们怎么能错过开发一款我们自己的APP.本人算是一个基于.net的GIS开发入门者(马上就大四啦), 暑假在学校参加GIS比赛有大把 ...
- PHP+ajaxfileupload与jcrop插件结合 完成头像上传
昨天花了点时间整合了一下头像插件 东拼西凑的成果 先来看下效果
- Moon.Orm性能报告
以下为有网友公司的评估测试及使用规范 大家可以下载word看看 http://pan.baidu.com/s/1hquvRuc 一.和ADO.NET进行的压力测试 说明:2000并发用户,此图为一网友 ...
- java web学习总结(三) -------------------TOMCAT使用帮助(二)
一.打包JavaWeb应用 在Java中,使用"jar"命令来对将JavaWeb应用打包成一个War包,jar命令的用法如下:
随机推荐
- 用正则验证字符串格式,形如:A)XXX B)XXXX C)XXX
今天遇到个小功能,要验证某个英文选项是否正确,例如:A)accumulate B)circling C)communities D)competition E)domestic F)financi ...
- Qt 之 设置窗口边框的圆角(使用QSS和PaintEvent两种方法)
Qt在设置窗口边框圆角时有两种方式,一种是设置样式,另一种是在paintEvent事件中绘制窗口.下面分别叙述用这两种方式来实现窗口边框圆角的效果. 一.使用setStyleSheet方法 this- ...
- 设计模式:单例模式(Singleton)
定义:确保一个类仅有一个实例,并提供一个访问它的全局访问点. 优点:在内存中只有一个对象,节省了内存空间 示例: Singleton.cs 写法一:非线程安全 public class Singlet ...
- 关于Bitcode的探索
Bitcode概述 Bitcode is an intermediate representation of a compiled program. Apps you upload t ...
- ArcGIS Engine开发之旅09--几何对象和空间参考
原文:ArcGIS Engine开发之旅09--几何对象和空间参考 1.Geometry Geometry 是 GIS 中使用最为广泛的对象集之一,用户在创建.删除.编辑和进行地理分析的时候,就是处 ...
- Marriage Match IV---hdu3416(spfa + Dinic)
题目链接:http://acm.split.hdu.edu.cn/showproblem.php?pid=3416 有一个有向图,n个点,m条边,给一个起点和终点,求出从起点到终点的最短路共有几条,每 ...
- iOS面试题 02
在面试的时候,面试官问我,“你对内存管理了解的多吗?” 我忘了当时是怎么回答的了,但是,肯定是一时没想起来怎么回答. 1.谁创建谁释放 2.autoreleasepool 3.retain,copy, ...
- setContentScaleFactor 设置图片的分辨率
float scale = [[UIScreenmainScreen] scale];//得到设备的分辨率 [imageView setContentScaleFactor:[[UIScreen ma ...
- PySe-003-Se-WebDriver 启动浏览器之一 - Firefox
此文主要演示 MacOX 下 WebDriver 启动 Firefox 浏览器,因 WebDriver 对 Firefox 浏览器是原生支持的,因而无需像启动其他浏览器一样需要相对应的 driver. ...
- oracle 条件语句的写法
1.基本的if else DECLARE I ; BEGIN THEN DBMS_OUTPUT.PUT_LINE('TRUE'); ELSE DBMS_OUTPUT.PUT_LINE('FALSE') ...