博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
《Spring In Action》 读书笔记(2) -- bean装配 ...
阅读量:4920 次
发布时间:2019-06-11

本文共 3312 字,大约阅读时间需要 11 分钟。

接上一篇

property的用法

property标签内部的属性也是ref和value,跟 constructor-arg用法无异,所以这里结合 集合 装配来说

property标签跟 constructor-arg 区别在于 后者是找构造方法,前者是找类的字段。先上代码

先写一个Instruments(乐器)接口

package spring.ioc03;public interface Instruments {    public void play();}

再写三个乐器,实现Instruments接口

package spring.ioc03;public class Cello implements Instruments {
@Override public void play() { System.out.print("大提琴 "); }}
package spring.ioc03;public class Piano implements Instruments {
@Override public void play() { System.out.print("钢琴 "); }}
package spring.ioc03;public class Violin implements Instruments {
@Override public void play() { System.out.print("小提琴 "); }}

最后写一个Pan(演奏者),他分别用list,map,set三种集合类型来保存自己会的乐器。还有一个performance方法,展示自己会的乐器。

package spring.ioc03;import java.util.List;import java.util.Map;import java.util.Set;public class Pan {    private List
instrumentsList; private Map
instrumentsMap; private Set
instrumentsSet; public void performance() { System.out.print("list我会 "); for (Instruments instrument : instrumentsList) instrument.play(); System.out.println(); System.out.print("map我会 "); for (Instruments instrument : instrumentsMap.values()) instrument.play(); System.out.println(); System.out.print("set我会 "); for (Instruments instrument : instrumentsSet) instrument.play(); } public List
getInstrumentsList() { return instrumentsList; } public void setInstrumentsList(List
instrumentsList) { this.instrumentsList = instrumentsList; } public Map
getInstrumentsMap() { return instrumentsMap; } public void setInstrumentsMap(Map
instrumentsMap) { this.instrumentsMap = instrumentsMap; } public Set
getInstrumentsSet() { return instrumentsSet; } public void setInstrumentsSet(Set
instrumentsSet) { this.instrumentsSet = instrumentsSet; }}

最后看一下spring的配置文件, property 标签的name属性对应类的 某个字段,比如instrumentsList,instrumentsSet,instrumentsMap,它会在spring装配bean的时候自动为这些字段赋值(通过字段的set方法),然后集合的装配方法见下面的配置。以达到装配pan的目的。

Spring Configuration

最后的单元测试

/**     * ioc03     * 装配List,map,set     */    @Test    public void test4() {        ApplicationContext context = new ClassPathXmlApplicationContext("ioc03.xml");           spring.ioc03.Pan pan = (spring.ioc03.Pan) context.getBean("pan");        pan.performance();    }

输出结果为

list我会 大提琴 钢琴 小提琴
map我会 大提琴 钢琴 小提琴
set我会 大提琴 钢琴 小提琴

转载于:https://www.cnblogs.com/lovejj1994/p/7182180.html

你可能感兴趣的文章
redis内存监控与回收
查看>>
Python str 与 bytes 类型 之间的转换
查看>>
unity 3d 解析 json
查看>>
POJO/javaBean/springBean
查看>>
产品/技术框架
查看>>
020.2.1 system
查看>>
使用freemarker模板引擎生成word文档的开发步骤
查看>>
《计算机网络》-CCNA命令大全
查看>>
Bash Shell 字符串操作小结(转)
查看>>
封装数据模型
查看>>
javase基础3
查看>>
命令行解析函数
查看>>
iterm2快捷键启动
查看>>
LeetCode Reverse Nodes in k-Group
查看>>
Todo list and 学习心得
查看>>
html笔记1
查看>>
uva10487-最接近的和
查看>>
FPGA--I2C串行通信总线
查看>>
服务器老是出现502 Bad Gateway?
查看>>
博客系统-点赞取消
查看>>