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如何被装配时, ...
随机推荐
- 使用自签名SSL证书配置HTTPS,解决浏览器提示不安全警告
项目测试过程中需要将应用从HTTP升级到HTTPS,浏览了网上一些帖子,参考<WebLogic11g-单双向SSL配置(以Springside3为例)>一文使用openssl工具来自建CA ...
- 仿netty线程池简化版本
package com.hcxy.car.threadpools; import java.io.IOException; import java.nio.channels.Selector; imp ...
- Spring JdbcTemplate的queryForList(String sql , Class<T> elementType)返回非映射实体类的解决方法
Spring JdbcTemplate的queryForList(String sql , Class<T> elementType)易错使用 一直用ORM,今天用JdbcTemplate ...
- Docker入门简明教程
Docker简介 概念 Docker是基于Go语言实现的云开源项目,是基于Linux的多项开源技术提供高效.敏捷和轻量级的容器方案.创建于2013年初.自从开源后就受到了广泛的关注,从长远的眼光来看, ...
- @Override笔记
作用:用来保证正确重写方法,当你重写方法出错时,比如方法名误写,或者漏掉参数,编译器会提示编译错误. 使用场景:继承父类,重写父类方法:实现接口,实现接口方法. 备注:jdk1.5之允许在继承时使用, ...
- 转载:vsftp中的local_umask和anon_umask
转载出处:http://blog.sina.com.cn/s/blog_67c5699001010e3e.html umask是unix操作系统的概念,umask决定目录和文件被创建时得到的初始权限u ...
- 20145329《Java程序设计》第六周学习总结
教材学习内容总结 第十章 InputSream与OutputStream Java中,输入串流代表对象为java.io.InputStream实例,输出串流代表对象为java.io.OutputStr ...
- hello java !
我对于计算机性编程性质的课程一直没有很好的悟性,但功夫不服有心,最近自己学习视频课程,随时关注娄老师的博客,慢慢的对于java编程有了新的认识,也用eclipse软件进行了简单java的编译. 了解的 ...
- mongodb入门很简单(2)
mongodb的安装 1.下载mongodb: www.mongodb.org 下载最新的stable版:我下载的版本是3.2.5 2.解压文件 3.不用编译:本身就是编译后的二进制可执行文件 打开 ...
- 图片上传oss--先拿server端签名再上传oss,返回id值
目前项目oss阿里云存储图片,图片上传主要步骤是:前端从服务端拿到签名signature,再上传到oss上busket里,上传成功返回图片id (imgId),最后再给server端: 注:官网上有个 ...