SpringInAction--自动化装配Bean(显示装配之xml配置)
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/beans
http://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 { /*@Autowired
DangNianQing dangNianQing;*/ @Autowired
CDPlay cdPlay; @Test
public void play() {
cdPlay.play();
}
}
以上就是xml显示的配置方法的简单小例子,如有错误,请指出,谢谢~
代码:https://github.com/eoooxy/springinaction test下 的com.bean.xml中
SpringInAction--自动化装配Bean(显示装配之xml配置)的更多相关文章
- 【Spring 核心】装配bean(三)XML配置
项目包结构: src/main/java com.bonc.pojo--|-CompactDisc.java (接口) |-SgtPeppers.java (实现类 实现 CompactDis ...
- Spring3.2 中 Bean 定义之基于 XML 配置方式的源码解析
Spring3.2 中 Bean 定义之基于 XML 配置方式的源码解析 本文简要介绍了基于 Spring 的 web project 的启动流程,详细分析了 Spring 框架将开发人员基于 XML ...
- spring学习总结——装配Bean学习三(xml装配bean)
通过XML装配bean Spring现在有了强大的自动化配置和基于Java的配置,XML不应该再是你的第一选择了.不过,鉴于已经存在那么多基于XML的Spring配置,所以理解如何在Spring中使用 ...
- Spring------自动化装配Bean(三)
上一篇是基于java手动装配bean的实现,这一篇将通过xml手动装配bean来实现. xml配置相对于java配置有点: xml配置更加快捷 但不宜扩展 一.打开application.xml 1. ...
- Spring学习笔记(三)之装配Bean
除了组件扫描与自动装配之外还有基于Java代码的装配与基于XML的装配. 有一些场景是我们不能用自动装配的,比如我们要给第三方库中的组件装配到我们的应用中,这时自动装配无效,因为自动装配只能扫描本应用 ...
- 03_Spring Bean的装配模式_基于Annotation配置方式
前言 在Spring中尽管使用XML配置文件可以实现Bean的装配工作,但如果应用中Bean的数量较多,会导致XML配置文件过于臃肿,从而给维护和升级带来一定的困难.从JDK 5开始提供了名为Anno ...
- Spring基础篇——通过Java注解和XML配置装配bean
自动化装配的确有很大的便利性,但是却并不能适用在所有的应用场景,比如需要装配的组件类不是由自己的应用程序维护,而是引用了第三方的类库,这个时候自动装配便无法实现,Spring对此也提供了相应的解决方案 ...
- Spring基础篇——通过Java注解和XML配置装配bean(转载)
作者:陈本布衣 出处:http://www.cnblogs.com/chenbenbuyi 本文版权归作者和博客园共有,欢迎转载分享,但必须保留此段声明,且在文章页面明显位置给出原文链接,否则保留 ...
- spring 配置 Java配置类装配bean
https://www.cnblogs.com/chenbenbuyi/p/8457700.html 自动化装配的确有很大的便利性,但是却并不能适用在所有的应用场景,比如需要装配的组件类不是由自己的应 ...
- #Spring实战第二章学习笔记————装配Bean
Spring实战第二章学习笔记----装配Bean 创建应用对象之间协作关系的行为通常称为装配(wiring).这也是依赖注入(DI)的本质. Spring配置的可选方案 当描述bean如何被装配时, ...
随机推荐
- 简单封装get和jsonp
/** * 向服务器发送GET请求. * * @param {type} url * @param {type} async 是否异步调用 * @param {type} fnCallback 回调 ...
- 关于iOS UIWebView 加载网页,点击网页内某些控件导致 Application 'UIKitApplication:xxx.xxx.xxx' was killed by jetsam.
问题:公司用的腾讯问卷系统,内嵌在我们应用或游戏的自定义UIWebView里面展示,发现在iOS 10 以下系统,点击圆形勾选框 会大概率出现闪退. 通过联调发现:报了这样一个警告Applicatio ...
- 337APuzzles
dangerous /*大水题目.不解释 给你m个数,从中选出n个,保证最大值和最小值的差值最小, 做法:从小到大排序,然后暴力枚举每个长度是n的序列*/ #include<stdio.h> ...
- 深入学习js之——词法作用域和动态作用域
开篇 当我们在开始学习任何一门语言的时候,都会接触到变量的概念,变量的出现其实是为了解决一个问题,为的是存储某些值,进而,存储某些值的目的是为了在之后对这个值进行访问或者修改,正是这种存储和访问变量的 ...
- s3cmd安装
配置yum.repos cd /etc/yum.repos.d/ vim s3tools.repo [s3tools] name=Tools for managing Amazon S3 - Simp ...
- ELK之elasticsearch5.6的安装和head插件的安装
这里选择的elasticsearch为5.6的新版本,根据官方文档有几种暗装方式: https://www.elastic.co/guide/en/elasticsearch/reference/cu ...
- tomcat结合memcached构建session服务器
memcached服务器两台:192.168.223.136,192.168.223.137 tomcat多实例:192.168.233.146:8081,192.168.223.146:8082 f ...
- 20145307第一周JAVA实验报告
20145307 <Java程序设计>第一次实验实验报告 北京电子科技学院(BESTI)实验报告 课程:Java程序设计 班级:1453 指导教师:娄嘉鹏 实验日期:2016.04.08 ...
- 20145331 实验一 "Java开发环境的熟悉"
20145331 实验一 "Java开发环境的熟悉" 实验内容 使用JDK和IDE编译.运行简单的Java程序.题目: 实现四则运算,并进行测试. 编写代码 1.首先第一步就是要输 ...
- 都能看懂的嵌入式linux/android alsa_aplay alsa_amixer命令行用法
前几天在嵌入式linux上用到alsa command,网上查的资料多不给力,只有动手一点点查,终于可以用了,将这个使用方法告诉大家,以免大家少走弯路. 0.先查看系统支持哪几个alsa cmd: l ...