Spring框架学习之第7节
配置Bean的细节
☞尽量使用scope=”singleton”,不要使用prototype,因为这样对我们的性能影响较大
②如何给集合类型注入值
Java中主要的map,set,list / 数组
Collection col = new ArrayList();
col能够使用的方法(点出来的方法)取决于左边的数据类型
beans.xml
- <?xml version="1.0" encoding="utf-8"?>
- <beans xmlns="http://www.springframework.org/schema/beans"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xmlns:aop="http://www.springframework.org/schema/aop"
- xmlns:tx="http://www.springframework.org/schema/tx"
- xsi:schemaLocation="
- http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
- http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.5.xsd
- http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd">
- <bean id="department" class="com.litao.collection.Department">
- <property name="name" value="财务部" />
- <!-- 给数组注入值 -->
- <property name="empName">
- <list>
- <value>小明</value>
- <value>小明小明</value>
- <value>小明小明小明小明</value>
- </list>
- </property>
- <!-- 给list注入值 list中可以有相同的对象 -->
- <property name="empList">
- <list>
- <ref bean="emp1"/>
- <ref bean="emp2"/>
- <ref bean="emp2"/>
- <ref bean="emp2"/>
- <ref bean="emp2"/>
- </list>
- </property>
- <!-- 给set注入值 set中不能有相同的对象 -->
- <property name="empsets">
- <set>
- <ref bean="emp1"/>
- <ref bean="emp2"/>
- <ref bean="emp2"/>
- <ref bean="emp2"/>
- <ref bean="emp2"/>
- <ref bean="emp2"/>
- </set>
- </property>
- <!-- 给map注入值 map中也不能有相同的对象,后面的会把前面的覆盖,map只要key一样就可以装配value对应的bean -->
- <property name="empMaps">
- <map>
- <entry key="1" value-ref="emp1"></entry>
- <entry key="2" value-ref="emp2"></entry>
- <entry key="2" value-ref="emp2"></entry>
- </map>
- </property>
- </bean>
- <bean id="emp1" class="com.litao.collection.Employee">
- <property name="name" value="北京" />
- <property name="id" value="1" />
- </bean>
- <bean id="emp2" class="com.litao.collection.Employee">
- <property name="name" value="天津" />
- <property name="id" value="2" />
- </bean>
- </beans>
Employee.java
- package com.litao.collection;
- public class Employee {
- private String name;
- private int id;
- public String getName() {
- return name;
- }
- public void setName(String name) {
- this.name = name;
- }
- public int getId() {
- return id;
- }
- public void setId(int id) {
- this.id = id;
- }
- }
Department.java
- package com.litao.collection;
- import java.util.List;
- import java.util.Map;
- import java.util.Set;
- public class Department {
- private String name;
- private String[] empName;
- private List<Employee> empList;
- private Set<Employee> empsets;
- private Map<String,Employee> empMaps;
- public String getName() {
- return name;
- }
- public void setName(String name) {
- this.name = name;
- }
- public String[] getEmpName() {
- return empName;
- }
- public void setEmpName(String[] empName) {
- this.empName = empName;
- }
- public List<Employee> getEmpList() {
- return empList;
- }
- public void setEmpList(List<Employee> empList) {
- this.empList = empList;
- }
- public Set<Employee> getEmpsets() {
- return empsets;
- }
- public void setEmpsets(Set<Employee> empsets) {
- this.empsets = empsets;
- }
- public Map<String, Employee> getEmpMaps() {
- return empMaps;
- }
- public void setEmpMaps(Map<String, Employee> empMaps) {
- this.empMaps = empMaps;
- }
- }
App1.java
- package com.litao.collection;
- import java.util.Iterator;
- import java.util.Map;
- import java.util.Map.Entry;
- import org.springframework.context.ApplicationContext;
- import org.springframework.context.support.ClassPathXmlApplicationContext;
- public class App1 {
- /**
- * @param args
- */
- public static void main(String[] args) {
- // TODO Auto-generated method stub
- ApplicationContext ac = new ClassPathXmlApplicationContext("com/litao/collection/beans.xml");
- Department department = (Department)ac.getBean("department");
- System.out.println(department.getName());
- for (String emName : department.getEmpName()) {
- System.out.println(emName);
- }
- System.out.println("************通过list集合取出数据**************");
- for(Employee e: department.getEmpList()){
- System.out.println("name=" + e.getName() + " " + e.getId());
- }
- //set取得时候不能保证顺序,list取时可以保证顺序
- System.out.println("************通过set集合取出数据**************");
- for(Employee e: department.getEmpsets()){
- System.out.println("name=" + e.getName());
- }
- System.out.println("************通过map集合取出数据**************");
- //1.用迭代器
- Map<String,Employee> empmaps = department.getEmpMaps();
- Iterator it = empmaps.keySet().iterator();
- while (it.hasNext()) {
- String key = (String)it.next();
- //System.out.println(key);
- Employee emp = empmaps.get(key);
- System.out.println("key="+key+" "+emp.getName());
- }
- //2.最简洁的方法
- for(Entry<String,Employee> entry1:department.getEmpMaps().entrySet()){
- System.out.println(entry1.getKey() + " " + entry1.getValue().getName());
- }
- }
- }
Spring框架学习之第7节的更多相关文章
- Spring框架学习之第2节
传统的方法和使用spring的方法 使用spring,没有new对象,我们把创建对象的任务交给了spring的框架,通过配置用时get一下就行. 项目结构 applicationContext.xml ...
- Spring框架学习之第1节
spring快速入门 ① spring是什么? Struts是web框架(jsp/action/actionform) hibernate是orm框架(对象和关系映射框架),处于持久层 sprin ...
- Spring框架学习之第9节
aop编程 aop(aspect oriented programming)面向切面(方面)编程,是所有对象或者是一类对象编程,核心是(在不增加代码的基础上,还增加新功能) 汇编(伪机器指令 mov ...
- Spring框架学习之第8节
<bean id=”foo” class=”…Foo”> <property name=”属性”> <!—第一方法引用--> <ref bean=”bean对 ...
- Spring框架学习之第3节
model层(业务层+dao层+持久层) spring开发提倡接口编程,配合di技术可以更好的达到层与层之间的解耦 举例: 现在我们体验一下spring的di配合接口编程,完成一个字母大小写转换的案例 ...
- Spring框架学习之第6节
bean的生命周期 为什么总是一个生命当做一个重点? Servlet –> servlet生命周期 Java对象生命周期 往往笔试,面试总喜欢问生命周期的问题? ① 实例化(当我们的程序加载 ...
- Spring框架学习之第5节
request session global-session 三个在web开发中才有意义 如果配置成prototype有点类似于request 如果配置成singleton有点类似于web开发中的gl ...
- Spring框架学习之第4节
从ApplicaionContext应用上下文容器中获取bean和从bean工厂容器中有什么区别: 具体案例如下 结论: 1.如果使用上下文ApplicationContext,则配置的bean如果是 ...
- Spring框架学习一
Spring框架学习,转自http://blog.csdn.net/lishuangzhe7047/article/details/20740209 Spring框架学习(一) 1.什么是Spring ...
随机推荐
- 36.Altium Designer(Protel)网络连接方式Port和Net Label详解
1.图纸结构 图纸包括两种结构关系: 一种是层次式图纸,该连接关系是纵向的,也就是某一层次的图纸只能和相邻的上级或下级有关系:另一种是扁平式图纸,该连接关系是横向的,任何两张图纸之间都可以建 ...
- Mysql去除重复
常用的有两种方法,第一种就是select distinct name from table.但是有时候我们要返回多个字段时就用第二种方法select *, count(distinct name) f ...
- 转载:SQL索引一步到位
原文: http://www.cnblogs.com/AK2012/archive/2013/01/04/2844283.html SQL索引一步到位(此文章为“数据库性能优化二:数据库表优化”附属文 ...
- 重新认识Box Model、IFC、BFC和Collapsing margins
尊重原创,转载自: http://www.cnblogs.com/fsjohnhuang/p/5259121.html 肥子John^_^ 前言 盒子模型作为CSS基础中的基础,曾一度以为掌握了I ...
- js判断手机还是pc并跳转相关页面
<script type="text/javascript"> function GetRequest() { var url = location.search; / ...
- hdu 1301 Jungle Roads 最小生成树
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1301 The Head Elder of the tropical island of Lagrish ...
- vertical sync
these days, I am compelting vertical sync https://msdn.microsoft.com/zh-cn/library/windows/desktop/b ...
- HDOJ 1226 超级密码
超级密码 Time Limit: 20000/10000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Subm ...
- Oracle自带的用户
Oracle安装完毕创建数据库实例的时候,会自动生成三个用户sys,system,scott. sys用户是超级管理员,具有最高权限,充当sysdba角色,可以执行create database,默认 ...
- 原 JS监听回车事件
原 JS监听回车事件 发表于2年前(2014-06-04 10:16) 阅读(6101) | 评论(0) 11人收藏此文章, 我要收藏 赞0 1月16日厦门 OSC 源创会火热报名中,奖品多多哦 ...