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. NPOI 导入 导出

    using NPOI.XSSF.UserModel;   using System.IO; 导入 /// <summary> /// Excel转换DataTable /// </s ...

  2. iOS开发之计算器

    本项目基于swift3.0的语法. // // ViewController.swift // 加法计算器 // // Created by 葛杨杨 on 2017/7/25. // Copyrigh ...

  3. 插入排序 Insertion Sort

    插入排序算法的运作如下: 通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入. 插入排序算法的实现我放在这里. 时间/空间复杂度: 最差时间复杂度 O(n^2) 最优时间 ...

  4. Serv-u 外网访问内网的FTP服务器

    1. 背景简介 最近研究如何在内网搭架FTP服务器,同时要保证外网(公网)能访问的到.终成正果,但走了一些弯路,在此记下,以飨后人. 2. 基础知识 FTP 使用 2 个端口,一个数据端口和一个命令端 ...

  5. Apache NiFi 开发 安装说明

    系统环境: vmware安装的centos6.7虚拟机 jdk1.8版本 maven库3.3.9版本(在使用源码编译启动的时候需要修改配置文件与当前使用的maven版本匹配,最低使用版本好像是3.1. ...

  6. yii 2 局部关闭 CSRF 拦截

    最近在拿 yii 2.0 开发ajax提交,在 post 请求接口时,提示数据无法验证,于是查询 yii 错误日志,发现错误为 exception ‘yiiwebBadRequestHttpExcep ...

  7. 17 南宁区域赛 F - The Chosen One 【规律】

    题目链接 https://nanti.jisuanke.com/t/19972 题意 给出一个n 然后将 n 个数 标号为 1 -> n 按顺序排列 每次抽掉 奇数位的数 然后求最后剩下那个数字 ...

  8. ZOJ 3961 Let's Chat 【水】

    题目链接 http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3961 题意 给出两个人的发消息的记录,然后 如果有两人在连续M天 ...

  9. LeetCode: Keyboard Row

    代码长了些,但还是比较简单的 public class Solution { public String[] findWords(String[] words) { List<String> ...

  10. CSS3透明背景表单

    在线演示 本地下载