Spring在配置时候有三种方案可选

1、在xml中进行显示配置

2、在java中进行显示配置

3、隐式的Bean发现机制和自动装配

今天学习的 第一种—— 在xml中进行显示配置

老规矩 先创建 CompactDisc 接口 ,DangNianQing 单首CD碟子,指定播放的CD碟子类 RandomCd 还有播放器 CDPlay

CompactDisc

package com.bean.xml;/*** Created by IntelliJ IDEA.* Author XueYuan* Data  2017/02/22* Time  14:06*/public interface CompactDisc {void play();
}

DangNianQing

package com.bean.xml;/*** Created by IntelliJ IDEA.* Author XueYuan* Data  2017/02/22* Time  14:07*/public class DangNianQing implements CompactDisc {private String title = "DangNianQing";private String artist = "张国荣";public void play() {System.out.println("Playing " + title + " By " + artist);}
}

RandomCd

package com.bean.xml;/*** Created by IntelliJ IDEA.* Author XueYuan* Data  2017/02/22* Time  14:33*/public class RandomCd implements CompactDisc {private String title;private String artist;public RandomCd(String title, String artist) {this.title = title;this.artist = artist;}public void play() {System.out.println("Playing " + title + " By " + artist);}}

CDPlay

package com.bean.xml;import org.springframework.beans.factory.annotation.Autowired;/*** Created by IntelliJ IDEA.* Author XueYuan* Data  2017/02/22* Time  14:23*/public class CDPlay {private CompactDisc compactDisc;@Autowired     // set注入public void setCompactDisc(CompactDisc compactDisc) {this.compactDisc = compactDisc;}//构造器注入/*public CDPlay(CompactDisc compactDisc) {this.compactDisc = compactDisc;}*/public void play() {compactDisc.play();}}

好了,东西准备好了,下面就看准备操作了,需要建立一个配置的xml文件

<bean id="dangNianQing" class="com.bean.xml.DangNianQing"/>

装配bean 即准备好单张曲子的那个cd碟

<bean id="randomCd" class="com.bean.xml.RandomCd"><constructor-arg index="0" value="当年情"/><constructor-arg index="1" value="张国荣"/></bean>

装配bean 即准备好指定点歌的的那个cd碟

 <!--装配com.bean.xml.CDPlay 类 但是CDPlay中需要有一个CompactDisc--><bean id="cdPlay" class="com.bean.xml.CDPlay"><!-- 通过引用id名 自动装配 CompactDisc --><!-- <constructor-arg ref="dangNianQing"/>--><!--<constructor-arg ref="randomCd"/>--><property name="compactDisc" ref="randomCd" /></bean>

配置bean 即要播放一首歌的cd碟子呢 还是要播放可以指定歌曲的碟子呢!

这边可以看出有多个选择如果是set注入的话就是上面的,如果是构造器注入的话,就是下面的代码(红色部分)

<!--装配com.bean.xml.CDPlay 类 但是CDPlay中需要有一个CompactDisc--><bean id="cdPlay" class="com.bean.xml.CDPlay"><!-- 通过引用id名 自动装配 CompactDisc --><!-- <constructor-arg ref="dangNianQing"/>--> <constructor-arg ref="randomCd"/><!--<property name="compactDisc" ref="randomCd" />--></bean>

整体代码如下:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans.xsd"><!--装配 CompactDisc --><bean id="dangNianQing" class="com.bean.xml.DangNianQing"/><!--装配com.bean.xml.CDPlay 类 但是CDPlay中需要有一个CompactDisc--><bean id="cdPlay" class="com.bean.xml.CDPlay"><!-- 通过引用id名 自动装配 CompactDisc --><!-- <constructor-arg ref="dangNianQing"/>--><!--<constructor-arg ref="randomCd"/>--><property name="compactDisc" ref="randomCd" /></bean><bean id="randomCd" class="com.bean.xml.RandomCd"><constructor-arg index="0" value="当年情"/><constructor-arg index="1" value="张国荣"/></bean>
</beans>

好了都 碟子选好了,也放入播放器了,下面就要按下 开始播放按钮看是否可以播放了

package com.bean.xml;import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;/*** Created by IntelliJ IDEA.* Author XueYuan* Data  2017/02/22* Time  14:08*/
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(value = "config.xml")
public class CDPlayerTest {/*@AutowiredDangNianQing dangNianQing;*/@AutowiredCDPlay cdPlay;@Testpublic void play() {cdPlay.play();}
}

以上就是xml显示的配置方法的简单小例子,如有错误,请指出,谢谢~

代码:https://github.com/eoooxy/springinaction test下 的com.bean.xml中

  

转载于:https://www.cnblogs.com/eoooxy/p/6429118.html

SpringInAction--自动化装配Bean(显示装配之xml配置)相关推荐

  1. Spring源码之Bean的注册(使用XML配置的方式)

    本文分析的Spring源码是5.2.2版本,使用Gradle进行管理. 一.Bean的注册,先来看通过XML配置Bean的方式 1.配置applicationContext.xml: <?xml ...

  2. Spring - 装配bean

    创建应用对象之间协作关系的行为通常称为装配(wiring),这也是依赖注入(DI)的本质 一.自动化装配bean(推荐方式) Spring从两个角度来实现自动化装配: 组件扫描:Spring会自动发现 ...

  3. spring(2)装配Bean

    [0]README 0)本文部分文字描述转自:"Spring In Action(中/英文版)",旨在review  spring(2)装配Bean 的相关知识: 1)在sprin ...

  4. (Spring)自动装配bean

    文章目录 自动装配bean 1. 环境搭建 2. byName自动装配 3. byType自动装配 4. 使用注解自动装配 4.1 @Autowired和@Qualifier 4.2 @Resourc ...

  5. Spring学习笔记--自动装配Bean属性

    Spring提供了四种类型的自动装配策略: byName – 把与Bean的属性具有相同名字(或者ID)的其他Bean自动装配到Bean的对应属性中. byType – 把与Bean的属性具有相同类型 ...

  6. 《Spring实战》系列之Bean的装配-Days01

    1 自动化装配bean Spring通过两个方面实现对bean的自动装配 1 ) 组件扫描(component scaning):Spring会自动发现Spring上下文中的bean 2 ) 自动装配 ...

  7. Spring笔记2——Spring中Bean的装配

    1.引言 Spring中,对象无需自己负责查找或创建与其关联的其他对象,而是由容器负责把需要相互协作的对象引用赋予各个对象.创建应用对象之间的协作关系的行为通常称为装配(Wiring),这也是依赖注入 ...

  8. Spring实战(第4版)第2章 装配Bean

    文章目录 Spring实战(第4版)第2章 装配Bean 2.1 Spring配置的可选方案 2.2 自动化装配bean 2.2.1 创建可被发现的bean 2.2.2 为组件扫描的bean命名 2. ...

  9. Spring bean依赖注入、bean的装配及相关注解

    依赖注入 Spring主要提供以下两种方法用于依赖注入 基于属性Setter方法注入 基于构造方法注入 Setter方法注入 例子: public class Communication {priva ...

  10. Spring Boot2.x-04Spring Boot基础-使用注解装配bean

    文章目录 概述 通过Java配置文件@Bean的方式定义Bean 通过注解扫描的方式(@Component/@ComponentScan)装配Bean 使用excludeFilters属性不让IoC加 ...

最新文章

  1. 掷骰子python代码_Python 使用matplotlib模块模拟掷骰子
  2. ubuntu 将某个目录下的文件复制到_Linux下处理隐私骚操作
  3. 安卓怎么用抖音做锁屏_把锁屏密码设置成当前时间,随时间的变动!别人怎么也猜不出来...
  4. 移动端微信页面的一些自己爬的坑
  5. python全栈开发基础【第二十三篇】线程
  6. 【数据结构与算法】之深入解析“学生出勤记录I”的求解思路与算法示例
  7. 如何在Wireshark确定数据集?
  8. 将桌面文件动态保存到D盘
  9. javadoc文档的生成方法_Cocoa 代码注释与文档生成
  10. 服务器计时器、Windows 计时器和线程计时器
  11. hdfs java 权限管理,HDFS的权限管理
  12. linux内核维护者,Linux 内核维护者封杀明尼苏达大学(转载) - 优秀的Free OS(Linux)版 - 北大未名BBS...
  13. JSF通过EL读取List中的值
  14. 令程序员们夜不能寐的“噩梦”除了改需求,还有这些…...
  15. 给定坐标(星期几、第几节)前端显示问题
  16. leetcode刷题答案
  17. Solidworks教程:solidworks常用的十个技巧
  18. VMware安装Ubuntu教程
  19. 从DT时代云栖大会聊聊恒生电子
  20. 傅里叶变换、拉普拉斯变换的应用

热门文章

  1. X-Forwarded-For 会少记录一次代理服务器的IP
  2. 【java】File的使用:将字符串写出到本地文件,大小0kb的原因
  3. 删除表中存在多条相同记录的方法
  4. IBM Installation Manager 工具概述(转)
  5. AVL树入门(转载)
  6. C 语言——字符串和格式化输入/输出
  7. ASA LAB-ASA NAT配置大全
  8. lodop打印技巧与注意事项
  9. Visual C++ 2011-8-15
  10. 拿什么留住你,我的程序员