spring的显示装配bean(1)------通过XML文件装配
1:spring环境的简单搭建
(1)导入spring相关的jar包。
2:准备要进行装配的Java类
这里给出两个举例类
(1)
(2)
3:配置XML文件
(1)在配置文件的顶部声明多个XML模式(xsd)文件,这些文件定义了配置Spring的XML元素,如下图所示

注:可使用Spring Tool Suite(http://spring.io/tools/sts)工具,在其菜单中选择File>new>Spring Bean Configuration File,创建Spring xml文件,
并可选择可用的配置命名空间。
(2)配置一个简单的bean
<bean class="pojo.TestSpring" id="test"></bean>
注:上例中id属性如果没有指定,这个bean将会根据全限定类名命名,在上例中,将会是“pojo.TestSpring#0”。其中#0为一个计数形式,用来区分其他同类型的bean,若声明了
另外一个TestSpring,将会是“pojo.TestSpring#1”。
(3)借助构造器注入属性
constructor-arg节点

上例中constructor-arg节点的顺序即为构造函数中参数列表的参数顺序,一一对应,类型对应错误则会抛出异常
同时,该节点数目与要使用的构造函数的参数列表的参数个数必须一致。上例中注入的是对象类型,若要注入字面
良,讲ref属性改为value即可,如

此外,使用构造器注入属性除了使用constructor-arg节点外,还可以使用c命名空间,使用c命名空间可以减少配置文件的
冗长,但是constructor-arg节点能做到的有些事情,c命名空间无法做到。
c命名空间
1.要使用c命名空间,必须要在xml文件顶部声明其模式,如下图所示。

2.c命名空间格式
c:cdplay-ref="play"
c:c命名空间前缀 cdplay:构造器参数名 -ref:注入bean引用 =“play” :要注入的bean的ID
c命名空间也可根据参数顺序注入属性,即顺序索引,因为XML不支持数字作为属性的第一个字符,所以前数字前加上一个下划线

与constructor-arg参数一样,注入属性类型与数量,必须与使用的构造函数一致。
若要通过c命名空间注入字面量,则如下图所示

笔者所给出的样例类中并没有给出String,int等类型的属性,这里给出的字面量注入方式只作为样例师范,读者若要经行测试需要自己建立更优的样例类。
(4)通过属性的set方法注入属性
<property></property>节点

其中name为属性名,ref为要注入的bean的Id
与construstor-arg节点类似,若要注入字面量,将ref属性改为value
p命名空间
1.要使用p命名空间,需要在XML文件顶部配置其模式,如下图

2.p命名空间格式
p:cdplay-ref="play"
p:p命名空间前缀 cdplay:构造器参数名 -ref:注入bean引用 =“play” :要注入的bean的ID

p命名空间不能通过顺序索引注入属性
与c命名空间类似,若要注入字面量,将-ref去掉。
(5)集合类型属性的注入

如上图所示,给出了list,map,set集合类型的注入方式,此外可借助util命名空间创建集合bean
1.要使用util命名空间,需要在xml文件顶部配置其模式

2.util:list

util命名空间让集合能够像其他的bean一样被注入到其他bean中
3.util-命名空间中的元素
| 元素 | 描述 |
| <util:constant> | 引用某个类型的Public static域,并将其暴露为bean |
| <util:list> | 创建一个java.util.list类型的bean,其中包含值或引用 |
| <util:map> | 创建一个java.util.map类型的bean,其中包含值或引用 |
| <util:properties> | 创建一个java.util.Properties类型的bean |
| <util:property-path> | 引用一个bean的属性(或内嵌属性),并将其暴露为bean |
| <util:set> | 创建一个java.util.Set类型的bean,其中包含值或引用 |
spring的显示装配bean(1)------通过XML文件装配的更多相关文章
- Spring基础篇——通过Java注解和XML配置装配bean
自动化装配的确有很大的便利性,但是却并不能适用在所有的应用场景,比如需要装配的组件类不是由自己的应用程序维护,而是引用了第三方的类库,这个时候自动装配便无法实现,Spring对此也提供了相应的解决方案 ...
- Spring基础篇——通过Java注解和XML配置装配bean(转载)
作者:陈本布衣 出处:http://www.cnblogs.com/chenbenbuyi 本文版权归作者和博客园共有,欢迎转载分享,但必须保留此段声明,且在文章页面明显位置给出原文链接,否则保留 ...
- spring学习总结——装配Bean学习一(自动装配)
一.Spring配置的可选方案 Spring容器负责创建应用程序中的bean并通过DI来协调这些对象之间的关系.但是,作为开发人员,你需要告诉Spring要创建哪些bean并且如何将其装配在一起.当描 ...
- 【Spring 核心】装配bean(二) JavaConfig装配
前面介绍完了组件扫描和自动装配,这里再来看一下装配bean的另一种方式JavaConfig. 包路径: src/main/java com.bonc-|--config--|--CDPlayerCon ...
- spring学习总结——装配Bean学习二(JavaConfig装配bean)
通过Java代码装配bean 前言:上面梳理了通过注解来隐式的完成了组件的扫描和自动装配,下面来学习下如何通过显式的配置的装配bean: 使用场景:比如说,你想要将第三方库中的组件装配到你的应用中,在 ...
- spring集成jpa【为什么有 persistant.xml 文件呢?】
原文地址: http://www.cnblogs.com/javahuang/archive/2012/12/19/2824633.html spring集成JPA的其中一种方式 JPA和hibern ...
- Spring mybatis源码篇章-Mybatis的XML文件加载
通过阅读源码对实现机制进行了解有利于陶冶情操,承接前文Spring mybatis源码篇章-Mybatis主文件加载 前话 前文主要讲解了Mybatis的主文件加载方式,本文则分析不使用主文件加载方式 ...
- cocos2d-x 显示中文字符和解析XML文件 转载
源地址:http://codingnow.cn/cocos2d-x/1038.html 在cocos2d-x中直接显示中文的时候会出现乱码,虽然在实际开发中把字符串直接写在代码里也不是好的做法,但是有 ...
- 【Spring】如何配置多个applicationContext.xml文件
在web.xml中通过contextConfigLocation配置spring 开发Java Web程序,使用ssh架构时,默认情况下,Spring的配置文件applicationContext.x ...
随机推荐
- Alpha版本冲刺总结——曙光初现
No Bug 031402401鲍亮 031402402曹鑫杰 031402403常松 031402412林淋 031402418汪培侨 031402426许秋鑫 项目预期计划 界面设计 androi ...
- 06OC之内存管理
在高级语言中,例如C#是通过垃圾回收机制(GC)来解决这个问题,但是在OC并没有类似的垃圾回收机制,因此必须由程序员手动去维护.今天就讲讲OC中的内存管理: 一.内存管理原理 在Xcode4.2之后的 ...
- 用Javascript(js)进行HTML转义工具(处理特殊字符显示)
转自:http://blog.csdn.net/hj7jay/article/details/51280405 众所周知页面上的字符内容通常都需要进行HTML转义才能正确显示,尤其对于Input,T ...
- 文本框value联动修改
<input id="ipt-edit" value="" /><input id="ipt-target" value= ...
- 示例开发过程记录:meteor,react,apollo
本示例记录一个开发过程: 1)参考 Meteor React TUTORIAL教程 https://www.meteor.com/tutorials/react/creating-an-app 2). ...
- [Linux]使用PHP编写Gearman的Worker守护进程
在我之前的文章中,介绍过Gearman的使用.在我的项目中,我使用了PHP来编写一直运行的Worker.如果按照Gearman官方推荐的例子,只是简单的一个循环来等待任务,会有一些问题,包括:1.当代 ...
- Python多进程(2)——mmap模块与mmap对象
本文介绍Python mmap模块与mmap对象的用法. mmap 模块提供“内存映射的文件对象”,mmap 对象可以用在使用 plain string 的地方,mmap 对象和 plain stri ...
- 了解Solr6.1结构及实现原理
Solr是一个高性能,采用Java5开发,基于Lucene的全文搜索服务器.同时对其进行了扩展,提供了比Lucene更为丰富的查询语言,同时实现了可配置.可扩展并对查询性能进行了优化,并且提供了一个完 ...
- 第十六篇:SWindow的布局属性pos2type及offset
当窗口大小需要根据内容来确定时,使用XML布局可能需要做一些特殊的处理. 例如:不管窗口多大,我需要将该窗口相对于父窗口居中在XML中应该怎么处理? 如果窗口大小是固定的(如, 100 *100),这 ...
- C# WebBrowser不能运行打开页面的activex
如果是在64位操作系统中编译的代码,如果activex是32位的那么将不会运行32位的activex. 解决方法:右击项目->属性->生成->目标平台[x86]