spring学习-2
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的更多相关文章
- spring 学习之 bean 的注入方式 property和constructor-arg的使用方式
spring 学习之 bean 的注入方式 property和constructor-arg的使用方式. bean的注入方式: property 注入是: 通过setxx方法注入. construct ...
- Spring学习之AOP总结帖
AOP(面向方面编程),也可称为面向切面编程,是一种编程范式,提供从另一个角度来考虑程序结构从而完善面向对象编程(OOP). 在进行 OOP 开发时,都是基于对组件(比如类)进行开发,然后对组件进行组 ...
- Spring学习之第一个AOP程序
IOC和AOP是Spring的两大基石,AOP(面向方面编程),也可称为面向切面编程,是一种编程范式,提供从另一个角度来考虑程序结构从而完善面向对象编程(OOP). 在进行 OOP 开发时,都是基于对 ...
- MyEclipse Spring 学习总结三 SpringMVC
MyEclipse Spring 学习总结三 SpringMVC 一.SpringMVC原理 1.Springmvc 框架介绍 1)Spring 框架停工了构建Web应用程序的全功能MVC模块.Spr ...
- Spring学习 Ioc篇(一 )
一直以来忙于项目的开发,Spring虽然不用,一直想系统地学习一下,想看看它的源码,都没有时间,这段时间比较充裕,就索性先把Spring学习下,熟悉各个功能再去探究它内部的实现.就从Ioc篇开始学习. ...
- Spring学习(三)——Spring中的依赖注入的方式
[前面的话] Spring对我太重要了,做个关于web相关的项目都要使用Spring,每次去看Spring相关的知识,总是感觉一知半解,没有很好的系统去学习一下,现在抽点时间学习一下Spring.不知 ...
- Spring学习(二)——Spring中的AOP的初步理解[转]
[前面的话] Spring对我太重要了,做个关于web相关的项目都要使用Spring,每次去看Spring相关的知识,总是感觉一知半解,没有很好的系统去学习一下,现在抽点时间学习一下Spring. ...
- 【Spring学习笔记-MVC-3.1】SpringMVC返回Json数据-方式1-扩展
<Spring学习笔记-MVC>系列文章,讲解返回json数据的文章共有3篇,分别为: [Spring学习笔记-MVC-3]SpringMVC返回Json数据-方式1:http://www ...
- Spring学习8-Spring事务管理
http://blog.sina.com.cn/s/blog_7ffb8dd501014e0f.html Spring学习8-Spring事务管理(注解式声明事务管理) 标签: spring注 ...
- Spring学习之Ioc控制反转(1)
开始之前: 1. 本博文为原创,转载请注明出处 2. 作者非计算机科班出身,如有错误,请多指正 ---------------------------------------------------- ...
随机推荐
- SecureCRT卡死的问题
ctrl+s是一个古老的shell控制键,不小心按倒就卡死了.在输入ctrl+q就可以恢复了
- Django——Session源码分析
首先我们导入django.contrib.sessions.middleware这个中间件,查看里面的Session源码 from django.contrib.sessions.middleware ...
- python常用模块——logger模块
python的logging模块提供了通用的日志系统,熟练使用logging模块可以方便开发者开发第三方模块或者是自己的python应用. python使用logging模块记录日志涉及四个主要的类: ...
- Python之 Django 初级
Python的WEB框架有Django.Tornado.Flask 等多种,Django相较与其他WEB框架其优势为:大而全,框架本身集成了ORM.模型绑定.模板引擎.缓存.Session等诸多功能. ...
- 17南宁区域赛 I - Rake It In 【DFS】
题目链接 https://nanti.jisuanke.com/t/19975 题意 Alice 和 Bob 玩游戏 在一个4x4 的方格上 每个人 每次选择2x2的区域 将里面的四个值求和加到最后的 ...
- ZOJ 3961 Let's Chat 【水】
题目链接 http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3961 题意 给出两个人的发消息的记录,然后 如果有两人在连续M天 ...
- 【leetcode刷题笔记】Palindrome Partitioning II
Given a string s, partition s such that every substring of the partition is a palindrome. Return the ...
- 写给后端程序员的HTTP缓存原理介绍--怎样决定一个资源的Cache-Control策略呢
通过Internet获取资源既缓慢,成本又高.为此,Http协议里包含了控制缓存的部分,以使Http客户端可以缓存和重用以前获 取的资源,从而优化性能,提升体验.虽然Http中关于缓存控制的部分,随着 ...
- Docker 配置代理
最近在k8s上部署helm 老提示无法下载镜像,因为伟大的祖国的长城Firewall....导致k8s根本玩不了..... 第一步:配置系统代理 # vim .bashrc export http_p ...
- UVA 796 连通图求桥
http://acm.hust.edu.cn/vjudge/contest/view.action?cid=86270#problem/C#include<iostream> #inclu ...