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. Android:日常学习笔记(8)———探究UI开发(5)

    Android:日常学习笔记(8)———探究UI开发(5) ListView控件的使用 ListView概述 A view that shows items in a vertically scrol ...

  2. highcharts基本介绍

    转自:http://www.cnblogs.com/jyh317/p/4189773.html 一.highcharts简介 Highcharts是一款纯javascript编写的图表库,能够很简单便 ...

  3. Python 9 sqlalchemy ORM

    一.ORM介绍: orm英文全称object relational mapping,就是对象映射关系程序,简单来说我们类似python这种面向对象的程序来说一切皆对象,但是我们使用的数据库却都是关系型 ...

  4. $Android设置TextView的字体

    做项目的时候,需要使用到手写字体来让内容更加的美观.可是程序中默认使用的是系统的默认字体,怎么将TextView(或EditText)的字体设置成自己想要的字体呢?步骤如下: 1.下载字体文件(.tt ...

  5. 【HackerRank】 Chocolate Feast

    Little Bob loves chocolates, and goes to the store with $N money in his pocket. The price of each ch ...

  6. @MarkFan 口语练习录音 20140415 [MDL演讲口语录音]

    Hi,everybody! 今天是2014年4月14日, 现在是晚上十一点零柒分. 一本励志的书,一场振奋人心的演讲,一次推心置腹的谈话, 最多只是在你背后小推你一下,最终决定是否迈出前进的步伐, 以 ...

  7. 正则表达式 获取字符串内提取图片URL字符串

    #region 获取字符串内提取图片URL字符串 /// <summary> /// 获取字符串内提取图片URL字符串 /// </summary> /// <param ...

  8. ACM训练小结-2018年6月19日

    今天题目情况如下:  A题:考察图论建模+判割点.B题:考察基础数据结构的运用(STL).C题:考察数学建模+运算.(三分可解)D题:考察读题+建模+数据结构的运用.E题:考察图论+贪心.F题:考察图 ...

  9. Docker 配置代理

    最近在k8s上部署helm 老提示无法下载镜像,因为伟大的祖国的长城Firewall....导致k8s根本玩不了..... 第一步:配置系统代理 # vim .bashrc export http_p ...

  10. easyui控件使用例子

    1.easyui之dataGrid分页加载数据例子 注意:1)分页表格通过url获得数据会提交page,rows两个参数:后台需要获取这两个参数并且由此得到 int pageSize=rows/pag ...