【Spring 核心】装配bean(三)XML配置
项目包结构:
src/main/java
com.bonc.pojo--|-CompactDisc.java (接口)
|-SgtPeppers.java (实现类 实现 CompactDisc)
|-BlankDisc.java (实现类 实现 CompactDisc)
|-MediaPlayer.java (接口)
|-CDPlayer.java (实现类 实现 MediaPlayer)
src/main/resources
spring.xml (Spring应用上下文配置信息)
接口 CompactDisc.java
package com.bonc.pojo;
public interface CompactDisc {
void play();
}
实现类 SgtPeppers.java
package com.bonc.pojo;
public class SgtPeppers implements CompactDisc {
private String title = "Sgt. Pepper's Lonely Hearts Club Band";
private String artist = "The Beatles";
public void play() {
System.out.println("Playing "+title+"by"+artist);
}
public SgtPeppers() {
super();
}
//自定义带参构造器
public SgtPeppers(String title, String artist) {
super();
this.title = title;
this.artist = artist;
}
}
实现类 BlankDisc.java
package com.bonc.pojo;
import java.util.List;
public class BlankDisc implements CompactDisc {
private String title;
private String artist;
private List<String> tracks;
public void play() {
System.out.println("Playing "+title+" by "+artist);
for(String track:tracks){
System.out.println("-Track: "+track);
}
}
//自定义带参构造器
public BlankDisc(String title, String artist, List<String> tracks) {
super();
this.title = title;
this.artist = artist;
this.tracks = tracks;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public String getArtist() {
return artist;
}
public void setArtist(String artist) {
this.artist = artist;
}
public List<String> getTracks() {
return tracks;
}
public void setTracks(List<String> tracks) {
this.tracks = tracks;
}
}
接口 MediaPlayer.java
package com.bonc.pojo;
public interface MediaPlayer {
void play();
}
实现类CDPlayer.java
package com.bonc.pojo;
public class CDPlayer implements MediaPlayer{
private CompactDisc cd;
public CDPlayer(){
super();
}
public CDPlayer(CompactDisc cd){
this.cd = cd;
}
public void play() {
cd.play();
}
public void setCd(CompactDisc cd) {
this.cd = cd;
}
}
Spring.xml配置信息
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:c="http://www.springframework.org/schema/c"
xmlns:p="http://www.springframework.org/schema/p"
xmlns:util="http://www.springframework.org/schema/util"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:tx="http://www.springframework.org/schema/tx"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-4.0.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx-4.0.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop-4.0.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-4.0.xsd
http://www.springframework.org/schema/util
http://www.springframework.org/schema/util/spring-util.xsd">
<!--
一、XML配置说明:
在Spring刚刚出现的时候,XML是描述配置的主要方式。
尽管Spring长期以来确实与XML有着关联,但需要说明的是,XML不再是配置Spring的唯一方案。
鉴于已经存在那么多基于XML的Spring配置,所以理解如何在Spring中配置XML还是很重要的。
本篇文章在于帮助你维护已有的XML配置,在完成新的Spring工作时,希望你使用自动化配置和JavaConfig
如果不给出ID属性,这个bean会根据全限定类名来进行命名
本例中为 com.bonc.pojo.SgtPeppers#0 #0是一个计数的形式,用来区分其他相同类型的bean
-->
<bean id="compactDisc" class="com.bonc.pojo.SgtPeppers"/>
<!--
二、借助构造器初始化bean有两种方案:
1. <constructor-arg>元素
2. 使用Spring3.0所引入的c-命名空间
-->
<bean id="cdPlayer" class="com.bonc.pojo.CDPlayer">
<constructor-arg ref="compactDisc"/>
</bean>
<!--
c:cd-ref
c(命名空间的前缀)-构造器的参数名-ref(告诉Spring 正在装配的是一个bean的引用)
也可以使用参数在参数列表中的位置信息
c:_0-ref="compactDisc"
-->
<bean id="cdPlayer2" class="com.bonc.pojo.CDPlayer" c:cd-ref="compactDisc"/>
<!--
装配字面量
-->
<bean id="compactDisc" class="com.bonc.pojo.SgtPeppers">
<constructor-arg value="Sgt. Pepper's Lonely Hearts Club Band"/>
<constructor-arg value="The Beatles"/>
</bean>
<bean id="compactDisc" class="com.bonc.pojo.SgtPeppers"
c:_title="gt. Pepper's Lonely Hearts Club Band"
c:_artist="The Beatles"/>
<bean id="compactDisc" class="com.bonc.pojo.SgtPeppers"
c:_0="gt. Pepper's Lonely Hearts Club Band"
c:_1="The Beatles"/>
<!--
装配list
-->
<bean id="compactDisc" class="com.bonc.pojo.BlankDisc">
<constructor-arg value="Sgt. Pepper's Lonely Hearts Club Band"/>
<constructor-arg value="The Beatles"/>
<constructor-arg>
<list>
<value>Sgt.Pepper's warm heart</value>
<value>With a little help from My Friends</value>
<value>in the Sky with Diamonds</value>
<value>Getting Better</value>
<value>Fixing A Hole</value>
</list>
</constructor-arg>
</bean>
<!-- 装配set -->
<bean id="compactDisc" class="com.bonc.pojo.BlankDisc">
<constructor-arg value="Sgt. Pepper's Lonely Hearts Club Band"/>
<constructor-arg value="The Beatles"/>
<constructor-arg>
<set>
<value>Sgt.Pepper's warm heart</value>
<value>With a little help from My Friends</value>
<value>in the Sky with Diamonds</value>
<value>Getting Better</value>
<value>Fixing A Hole</value>
</set>
</constructor-arg>
</bean>
<!--
三、属性初始化bean
-->
<bean id="compactDisc" class="com.bonc.pojo.BlankDisc">
<property name="title" value="Sgt. Pepper's Lonely Hearts Club Band"/>
<property name="artist"value="The Beatles"/>
<property name="tracks">
<list>
<value>Sgt.Pepper's warm heart</value>
<value>With a little help from My Friends</value>
<value>in the Sky with Diamonds</value>
<value>Getting Better</value>
<value>Fixing A Hole</value>
</list>
</property>
</bean>
<!--
四、使用Spring util-命名空间简化bean配置
首先需要在XML中声明util-命名空间及其模式
util:list只是util-命名空间中的多个元素之一
-->
<util:list id="trackList">
<value>Sgt.Pepper's warm heart</value>
<value>With a little help from My Friends</value>
<value>in the Sky with Diamonds</value>
<value>Getting Better</value>
<value>Fixing A Hole</value>
</util:list>
<bean id="compactDisc" class="com.bonc.pojo.BlankDisc"
p:title="Sgt. Pepper's Lonely Hearts Club Band"
p:artist="The Beatles"
p:track-ref="trackList"/>
</beans>
【Spring 核心】装配bean(三)XML配置的更多相关文章
- Spring_总结_03_装配Bean(三)_XML配置
一.前言 本文承接上一节:Spring_总结_03_装配Bean(二)之Java配置 上一节说到,当需要显示配置时,首选类型安全并且比XML更强大Java配置. 那什么时候使用XML配置呢? (1)维 ...
- IoC容器装配Bean(xml配置方式)(Bean的生命周期)
1.Spring管理Bean,实例化Bean对象 三种方式 第一种:使用类构造器实例化(默认无参数) package cn.itcast.spring.initbean; /** * 使用构造方法 实 ...
- Spring 自动装配 Bean
Spring3系列8- Spring 自动装配 Bean 1. Auto-Wiring ‘no’ 2. Auto-Wiring ‘byName’ 3. Auto-Wiri ...
- Spring自动装配Bean详解
1. Auto-Wiring ‘no’ 2. Auto-Wiring ‘byName’ 3. Auto-Wiring ‘byType 4. Auto-Wirin ...
- MongoDB和Java(4):Spring Data整合MongoDB(XML配置)
最近花了一些时间学习了下MongoDB数据库,感觉还是比较全面系统的,涉及了软件安装.客户端操作.安全认证.副本集和分布式集群搭建,以及使用Spring Data连接MongoDB进行数据操作,收获很 ...
- Spring声明式事务(xml配置事务方式)
Spring声明式事务(xml配置事务方式) >>>>>>>>>>>>>>>>>>>& ...
- Spring实战(三)Spring中装配Bean的三种方式---XML、JavaConfig、AutoWire
创建应用对象之间协作关系的行为称为装配(wiring),这也是依赖注入的本质. Spring容器负责创建应用程序中的bean并通过DI来协调这些对象之间的关系,而开发者需要告诉Spring需要创建哪些 ...
- Spring装配Bean---使用xml配置
声明Bean Spring配置文件的根元素是<beans>. 在<beans>元素内,你可以放所有的Spring配置信息,包括<bean>元素的声明. 除了Bean ...
- Spring容器装配Bean的三种方式
欢迎查看Java开发之上帝之眼系列教程,如果您正在为Java后端庞大的体系所困扰,如果您正在为各种繁出不穷的技术和各种框架所迷茫,那么本系列文章将带您窥探Java庞大的体系.本系列教程希望您能站在上帝 ...
- IDEA02 利用Maven创建Web项目、为Web应用添加Spring框架支持、bean的创建于获取、利用注解配置Bean、自动装配Bean、MVC配置
1 环境版本说明 Jdk : 1.8 Maven : 3.5 IDEA : 专业版 2017.2 2 环境准备 2.1 Maven安装及其配置 2.2 Tomcat安装及其配置 3 详细步骤 3.1 ...
随机推荐
- Hihocoder 1325 平衡树·Treap(平衡树,Treap)
Hihocoder 1325 平衡树·Treap(平衡树,Treap) Description 小Ho:小Hi,我发现我们以前讲过的两个数据结构特别相似. 小Hi:你说的是哪两个啊? 小Ho:就是二叉 ...
- .net 自动摘要等算法 HanLP.net
参考资料: http://www.hankcs.com/nlp/call-hanlp-in-csharp.html 目前自动摘要算法似乎没有.net 版本,而以java,python 居多 自动摘要算 ...
- .net ElasticSearch-Sql 扩展类
官方提供的是java sdk,并支持jdbc方式的查询结果输出;但是却没有.net sdk的支持. 开发 ElasticSearch-Sql 第三方开源项目的.net sdk,未来集成入bsf框架.( ...
- Merge Two Sorted Lists & Remove Nth Node From End of List
1.合并两个排好序的list Merge Two Sorted Lists Merge two sorted linked lists and return it as a new list. The ...
- 有关Android插件化思考
最近几年移动开发业界兴起了「 插件化技术 」的旋风,各个大厂都推出了自己的插件化框架,各种开源框架都评价自身功能优越性,令人目不暇接.随着公司业务快速发展,项目增多,开发资源却有限,如何能在有限资源内 ...
- 禁止UIWebView随键盘的弹起而往上滚动
问题:当UIWebView中的html有输入框,点击输入框,UIWebView会随键盘的弹起而整体往上移动,收起键盘后,UIWebView无法回到原来的位置; 问题的原因:由于UIWebView继承的 ...
- hibernate 使用枚举字段的最佳实践
枚举类虽然很简单,但是却往往是系统中业务逻辑最集中最复杂的地方.本文将会分享我们项目中基于hibernate的枚举类使用规范,包含数据库中枚举列数据类型.注释.枚举列与枚举类的映射等. 一.枚举类定义 ...
- FaceRank,最有趣的 TensorFlow 入门实战项目
FaceRank,最有趣的 TensorFlow 入门实战项目 TensorFlow 从观望到入门! https://github.com/fendouai/FaceRank 最有趣? 机器学习是不是 ...
- RabbitMQ入门-高效的Work模式
扛不住的Hello World模式 上篇<RabbitMQ入门-从HelloWorld开始>介绍了RabbitMQ中最基本的Hello World模型.正如其名,Hello World模型 ...
- Linux(9)后台运行python程序并输出到日志文件
后台运行python程序并标准输出到文件 现在有test.py程序要后台部署, 里面有输出内容 使用命令: nohup python -u test.py > test.log 2>&am ...