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,其中包含值或引用

 

posted @ 2016-12-20 16:23  瓜瓜乐  阅读(410)  评论(0编辑  收藏  举报