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如何被装配时, ...
随机推荐
- C++MFC之picture control控件铺满图片
UpdateData(true); //更新路径公共变量 CString m_path = m_edit1.GetString(); if(m_path=="") ...
- 图片上传ie与chrome总结
if(brow.msie) // ie浏览器执行此代码 { // data 可以是字符串 eval("data = " + data); } else // 其他浏览器执 ...
- [one day one question] Iscroll 5.0 在chrome上无法滑动
问题描述: Iscroll 5.0 在chrome上无法滑动,不仅仅在chromePC的开发的时候,在手机上的chrome也有同样的问题,这怎么破? 解决方案: // 关闭 PointerEvent ...
- lvds split两channel输出到一个屏显示
转:https://blog.csdn.net/changqing1990/article/details/81128552 其实之前写过LCD/LVDS的一些时序的基本概念<与LCD移植相关的 ...
- 【VS2015】未能创建 Visual C# 2015编译器
今天在安装完成Visual Studio 2015后,在执行update 3时出错,导致再次打开VS2015时提示错误:“未能创建 Visual C# 2015编译器”和“未能正确加载CSharpPa ...
- 注意:PHP7中十个需要避免的坑
1.不要使用mysql_函数 这一天终于来了,从此你不仅仅“不应该”使用mysql_函数.PHP7已经把它们从核心中全部移除了,也就是说你需要迁移到好得多的mysqli_函数,或者更灵活的PDO实现. ...
- 20145309《Java程序设计》第八周学习总结
日志 •java.util.logging包提供了日志功能相关类与接口,使用日志的起点是logger类,Logger类的构造函数标示为protected,不是java.util.logging同包的类 ...
- Axis.Labels.CustomSize
tChart1.Axes.Bottom.Labels.CustomSize = ; //Changes spacing occupied by the axis labels between the ...
- [OpenCV]OpenCV常用语法函数与坑点
目录 1. 加载图像(cv::imread) 2. 显示图像(cv::nameWindows与cv::imshow) 3. 修改图像(cv::cvtColor) 4. 保存图像(cv::imwrite ...
- 08_MySQL DQL_SQL99标准中的多表查询(内连接)
# sql99语法/*语法: select 查询列表 from 表1 别名 [连接类型] join 表2 别名 on 连接条件 [where 筛选条件] [group by 分组] [having 分 ...