Spring_属性配置细节

1、若字面值包含特殊字符,可以使用把字面值包裹起来

<value><![CDATA[<3333>^]]></value>

2、ref属性来建立bean之间的引用关系和级联属性赋值

2.1 定义User.java(见上一篇文章)和Manager.java Bean

package com.test;

    public class Manager {
private String name;
private User user; public void setName(String name) {
this.name = name;
} public User getUser() {
return user;
} public void setUser(User user) {
this.user = user;
} @Override
public String toString() {
return "Manager [name=" + name + ", user=" + user + "]";
}
}

2、2 配置spring xml文件

<bean id="manager" class="com.test.Manager">
<property name="name" value="gg"></property>
<!-- 可以使用ref属性来建立bean之间的引用关系 -->
<property name="user" ref="user1"></property>
<!-- 为级联属性赋值,注意:属性需要先初始化后才能为级联属性赋值,否则会有异常,和struts2不同 -->
<property name="user.age" value="33" />**<!--这里的user是Manager的属性值,而不是ref引用的id-->**
<!-- 定义内部bean,不能被外部引用,只能内部使用 -->
<!-- <property name="user"> <bean class="com.test.User"> <constructor-arg
value="ccd" index="0"></constructor-arg> <constructor-arg value="30" index="1"></constructor-arg>
<constructor-arg value="13456" index="2"> </constructor-arg> </bean> </property>
<property name="user.age" value="33"/> -->
</bean>

3、配置集合、Map和Properties

3.1 配置集合List

修改Manager.java的user为List类型,并生成get set方法

      private List<User> users;

	public List<User> getUsers() {
return users;
} public void setUsers(List<User> users) {
this.users = users;
}

配置xml文件

<bean id="manager1" class="com.test.collectic.Manager">
<property name="name" value="fei"></property>
<property name="users">
<!-- 使用list节点为List类型的属性赋值 -->
<list>
<ref bean="user1" />
<ref bean="user2" />
</list>
</property>
</bean>

**配置单例的集合bean,以供多个bean引用,需要用到util命名空间 **

引用命名空间:

配置xml文件

<util:list id="users">
<ref bean="user" />
<ref bean="user2" />
</util:list>
<!-- 测试引用 集合bean -->
<bean id="manager2" class="com.test.collectic.Manager">
<property name="name" value="fff"></property>
<property name="users" ref="users"></property>
</bean>

3.2 配置Map

<bean id="newManager" class="com.test.collectic.NewManager">
<property name="name" value="ya"></property>
<property name="users">
<map>
<entry key="小米" value-ref="user"></entry>
<entry key="小哈" value-ref="user2"></entry>
</map>
</property>
</bean>

3.3 配置Properties

新建Connect.java

package com.test.collectic;
import java.util.Properties; public class Connect {
private Properties properties; public Properties getProperties() {
return properties;
} public void setProperties(Properties properties) {
this.properties = properties;
} @Override
public String toString() {
return "Connect [properties=" + properties + "]";
}
}

配置xml文件

<!--配置Properties属性值,为了与hibernate整合需要用到 -->
<bean id="connect" class="com.test.collectic.Connect">
<property name="properties">
<!-- 使用props和prop子节点来为 Properties属性赋值 -->
<props>
<prop key="user">root</prop>
<prop key="password">root</prop>
<prop key="jdbcUrl">jdbc:mysql:///user</prop>
<prop key="driverClass">com.mysql.jdbc.Driver</prop>
</props>
</property>
</bean>

4、通过p命名空间为bean的属性赋值

<!-- 通过p命名空间为bean的属性赋值,需要先导入p的命名空间,相比于传统的更简单 -->
<bean id="manager3" class="com.test.collectic.Manager" p:name="qin"
p:users-ref="users">
</bean>

5、结果预览

Manager [name=qin, users=[User [name=aa, age=33, money=10.0, no=123456], User [name=cc, age=10, money=0.0, no=<3333>]]]
NewManager [name=ya, users={小米=User [name=aa, age=33, money=10.0, no=123456], 小哈=User [name=cc, age=10, money=0.0, no=<3333>]}]
Connect [properties={driverClass=com.mysql.jdbc.Driver, user=root, password=root, jdbcUrl=jdbc:mysql:///user}]

spring学习-2的更多相关文章

  1. spring 学习之 bean 的注入方式 property和constructor-arg的使用方式

    spring 学习之 bean 的注入方式 property和constructor-arg的使用方式. bean的注入方式: property 注入是: 通过setxx方法注入. construct ...

  2. Spring学习之AOP总结帖

    AOP(面向方面编程),也可称为面向切面编程,是一种编程范式,提供从另一个角度来考虑程序结构从而完善面向对象编程(OOP). 在进行 OOP 开发时,都是基于对组件(比如类)进行开发,然后对组件进行组 ...

  3. Spring学习之第一个AOP程序

    IOC和AOP是Spring的两大基石,AOP(面向方面编程),也可称为面向切面编程,是一种编程范式,提供从另一个角度来考虑程序结构从而完善面向对象编程(OOP). 在进行 OOP 开发时,都是基于对 ...

  4. MyEclipse Spring 学习总结三 SpringMVC

    MyEclipse Spring 学习总结三 SpringMVC 一.SpringMVC原理 1.Springmvc 框架介绍 1)Spring 框架停工了构建Web应用程序的全功能MVC模块.Spr ...

  5. Spring学习 Ioc篇(一 )

    一直以来忙于项目的开发,Spring虽然不用,一直想系统地学习一下,想看看它的源码,都没有时间,这段时间比较充裕,就索性先把Spring学习下,熟悉各个功能再去探究它内部的实现.就从Ioc篇开始学习. ...

  6. Spring学习(三)——Spring中的依赖注入的方式

    [前面的话] Spring对我太重要了,做个关于web相关的项目都要使用Spring,每次去看Spring相关的知识,总是感觉一知半解,没有很好的系统去学习一下,现在抽点时间学习一下Spring.不知 ...

  7. Spring学习(二)——Spring中的AOP的初步理解[转]

      [前面的话] Spring对我太重要了,做个关于web相关的项目都要使用Spring,每次去看Spring相关的知识,总是感觉一知半解,没有很好的系统去学习一下,现在抽点时间学习一下Spring. ...

  8. 【Spring学习笔记-MVC-3.1】SpringMVC返回Json数据-方式1-扩展

    <Spring学习笔记-MVC>系列文章,讲解返回json数据的文章共有3篇,分别为: [Spring学习笔记-MVC-3]SpringMVC返回Json数据-方式1:http://www ...

  9. Spring学习8-Spring事务管理

      http://blog.sina.com.cn/s/blog_7ffb8dd501014e0f.html   Spring学习8-Spring事务管理(注解式声明事务管理) 标签: spring注 ...

  10. Spring学习之Ioc控制反转(1)

    开始之前: 1. 本博文为原创,转载请注明出处 2. 作者非计算机科班出身,如有错误,请多指正 ---------------------------------------------------- ...

随机推荐

  1. Python基础-configparser和hashlib模块

    configparser模块 import configparser config = configparser.ConfigParser() #将配置写入到文件 config[', 'Compres ...

  2. vim插件快捷键

    @1:winmanager: #1:打开winmanager的快捷键在.vimrc中配置,默认为":WMToggle",使用nmap可以将其映射到其他的命令. #2:netrw快捷 ...

  3. position:absolute width

    position:absolute; left:0px; right:0px; top:0px; bottom:0px; 设置布满整个父范围,设置了absolute的元素可以通过以上4个属性来展开面, ...

  4. $用python实现快速排序算法

    本文主要介绍用python实现基本的快速排序算法,体会一下python的快排代码可以写得多么简洁. 1. 三言两语概括算法核心思想 先从待排序的数组中找出一个数作为基准数(取第一个数即可),然后将原来 ...

  5. centos6.8 修改yum安装镜像源

    查看centos系统版本 cat /etc/redhat-release CentOS系统更换软件安装源 第一步:备份你的原镜像文件,以免出错后可以恢复. mv /etc/yum.repos.d/Ce ...

  6. linux命令详解之df(6/19)

    df命令作用是列出文件系统的整体磁盘空间使用情况.可以用来查看磁盘已被使用多少空间和还剩余多少空间. df命令显示系统中包含每个文件名参数的磁盘使用情况,如果没有文件名参数,则显示所有当前已挂载文件系 ...

  7. Linux串口编程(中断方式和select方式)

    Linux下的串口编程,在嵌入式开发中占据着重要的地位,因为很多的嵌入式设备都是通过串口交换数据的.在没有操作系统的我们可以使用UART的中断来出来数据的接受和发送,而在Linux操作系统下,我们也可 ...

  8. LVS/NAT 配置

    LVS/NAT 配置 实验环境 三台主机:Linux Centos 6.4 32位 调度器Director:192.168.1.160(内网IP).192.168.2.20(公网IP) HTTP真实服 ...

  9. CSS3手风琴下拉菜单

    在线演示 本地下载

  10. php数组函数-array_pad()

    array_pad()函数向一个数组插入带有指定值的指定数量的元素. array_pad(array,size,value); array:必需.规定数组 size:必需.指定的长度.正数则填补到右侧 ...