配置Bean的细节

☞尽量使用scope=”singleton”,不要使用prototype,因为这样对我们的性能影响较大

②如何给集合类型注入值

Java中主要的map,set,list / 数组

Collection col = new ArrayList();

col能够使用的方法(点出来的方法)取决于左边的数据类型

beans.xml

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <beans xmlns="http://www.springframework.org/schema/beans"
  3. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  4. xmlns:aop="http://www.springframework.org/schema/aop"
  5. xmlns:tx="http://www.springframework.org/schema/tx"
  6. xsi:schemaLocation="
  7. http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
  8. http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.5.xsd
  9. http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd">
  10.  
  11. <bean id="department" class="com.litao.collection.Department">
  12. <property name="name" value="财务部" />
  13. <!-- 给数组注入值 -->
  14. <property name="empName">
  15. <list>
  16. <value>小明</value>
  17. <value>小明小明</value>
  18. <value>小明小明小明小明</value>
  19. </list>
  20. </property>
  21. <!-- 给list注入值 list中可以有相同的对象 -->
  22. <property name="empList">
  23. <list>
  24. <ref bean="emp1"/>
  25. <ref bean="emp2"/>
  26. <ref bean="emp2"/>
  27. <ref bean="emp2"/>
  28. <ref bean="emp2"/>
  29. </list>
  30. </property>
  31. <!-- 给set注入值 set中不能有相同的对象 -->
  32. <property name="empsets">
  33. <set>
  34. <ref bean="emp1"/>
  35. <ref bean="emp2"/>
  36. <ref bean="emp2"/>
  37. <ref bean="emp2"/>
  38. <ref bean="emp2"/>
  39. <ref bean="emp2"/>
  40. </set>
  41. </property>
  42. <!-- 给map注入值 map中也不能有相同的对象,后面的会把前面的覆盖,map只要key一样就可以装配value对应的bean -->
  43. <property name="empMaps">
  44. <map>
  45. <entry key="1" value-ref="emp1"></entry>
  46. <entry key="2" value-ref="emp2"></entry>
  47. <entry key="2" value-ref="emp2"></entry>
  48. </map>
  49. </property>
  50. </bean>
  51. <bean id="emp1" class="com.litao.collection.Employee">
  52. <property name="name" value="北京" />
  53. <property name="id" value="1" />
  54. </bean>
  55. <bean id="emp2" class="com.litao.collection.Employee">
  56. <property name="name" value="天津" />
  57. <property name="id" value="2" />
  58. </bean>
  59. </beans>

Employee.java

  1. package com.litao.collection;
  2.  
  3. public class Employee {
  4.  
  5. private String name;
  6. private int id;
  7.  
  8. public String getName() {
  9. return name;
  10. }
  11.  
  12. public void setName(String name) {
  13. this.name = name;
  14. }
  15.  
  16. public int getId() {
  17. return id;
  18. }
  19.  
  20. public void setId(int id) {
  21. this.id = id;
  22. }
  23.  
  24. }

Department.java

  1. package com.litao.collection;
  2.  
  3. import java.util.List;
  4. import java.util.Map;
  5. import java.util.Set;
  6.  
  7. public class Department {
  8.  
  9. private String name;
  10. private String[] empName;
  11. private List<Employee> empList;
  12. private Set<Employee> empsets;
  13. private Map<String,Employee> empMaps;
  14.  
  15. public String getName() {
  16. return name;
  17. }
  18. public void setName(String name) {
  19. this.name = name;
  20. }
  21. public String[] getEmpName() {
  22. return empName;
  23. }
  24. public void setEmpName(String[] empName) {
  25. this.empName = empName;
  26. }
  27.  
  28. public List<Employee> getEmpList() {
  29. return empList;
  30. }
  31. public void setEmpList(List<Employee> empList) {
  32. this.empList = empList;
  33. }
  34. public Set<Employee> getEmpsets() {
  35. return empsets;
  36. }
  37. public void setEmpsets(Set<Employee> empsets) {
  38. this.empsets = empsets;
  39. }
  40. public Map<String, Employee> getEmpMaps() {
  41. return empMaps;
  42. }
  43. public void setEmpMaps(Map<String, Employee> empMaps) {
  44. this.empMaps = empMaps;
  45. }
  46.  
  47. }

App1.java

  1. package com.litao.collection;
  2.  
  3. import java.util.Iterator;
  4. import java.util.Map;
  5. import java.util.Map.Entry;
  6.  
  7. import org.springframework.context.ApplicationContext;
  8. import org.springframework.context.support.ClassPathXmlApplicationContext;
  9.  
  10. public class App1 {
  11.  
  12. /**
  13. * @param args
  14. */
  15. public static void main(String[] args) {
  16. // TODO Auto-generated method stub
  17. ApplicationContext ac = new ClassPathXmlApplicationContext("com/litao/collection/beans.xml");
  18.  
  19. Department department = (Department)ac.getBean("department");
  20. System.out.println(department.getName());
  21. for (String emName : department.getEmpName()) {
  22. System.out.println(emName);
  23. }
  24.  
  25. System.out.println("************通过list集合取出数据**************");
  26. for(Employee e: department.getEmpList()){
  27.  
  28. System.out.println("name=" + e.getName() + " " + e.getId());
  29.  
  30. }
  31.  
  32. //set取得时候不能保证顺序,list取时可以保证顺序
  33. System.out.println("************通过set集合取出数据**************");
  34. for(Employee e: department.getEmpsets()){
  35.  
  36. System.out.println("name=" + e.getName());
  37.  
  38. }
  39. System.out.println("************通过map集合取出数据**************");
  40. //1.用迭代器
  41. Map<String,Employee> empmaps = department.getEmpMaps();
  42.  
  43. Iterator it = empmaps.keySet().iterator();
  44.  
  45. while (it.hasNext()) {
  46. String key = (String)it.next();
  47. //System.out.println(key);
  48. Employee emp = empmaps.get(key);
  49. System.out.println("key="+key+" "+emp.getName());
  50. }
  51.  
  52. //2.最简洁的方法
  53. for(Entry<String,Employee> entry1:department.getEmpMaps().entrySet()){
  54. System.out.println(entry1.getKey() + " " + entry1.getValue().getName());
  55.  
  56. }
  57.  
  58. }
  59.  
  60. }

Spring框架学习之第7节的更多相关文章

  1. Spring框架学习之第2节

    传统的方法和使用spring的方法 使用spring,没有new对象,我们把创建对象的任务交给了spring的框架,通过配置用时get一下就行. 项目结构 applicationContext.xml ...

  2. Spring框架学习之第1节

    spring快速入门 ①   spring是什么? Struts是web框架(jsp/action/actionform) hibernate是orm框架(对象和关系映射框架),处于持久层 sprin ...

  3. Spring框架学习之第9节

    aop编程 aop(aspect oriented programming)面向切面(方面)编程,是所有对象或者是一类对象编程,核心是(在不增加代码的基础上,还增加新功能) 汇编(伪机器指令 mov ...

  4. Spring框架学习之第8节

    <bean id=”foo” class=”…Foo”> <property name=”属性”> <!—第一方法引用--> <ref bean=”bean对 ...

  5. Spring框架学习之第3节

    model层(业务层+dao层+持久层) spring开发提倡接口编程,配合di技术可以更好的达到层与层之间的解耦 举例: 现在我们体验一下spring的di配合接口编程,完成一个字母大小写转换的案例 ...

  6. Spring框架学习之第6节

    bean的生命周期 为什么总是一个生命当做一个重点? Servlet –> servlet生命周期 Java对象生命周期 往往笔试,面试总喜欢问生命周期的问题? ①   实例化(当我们的程序加载 ...

  7. Spring框架学习之第5节

    request session global-session 三个在web开发中才有意义 如果配置成prototype有点类似于request 如果配置成singleton有点类似于web开发中的gl ...

  8. Spring框架学习之第4节

    从ApplicaionContext应用上下文容器中获取bean和从bean工厂容器中有什么区别: 具体案例如下 结论: 1.如果使用上下文ApplicationContext,则配置的bean如果是 ...

  9. Spring框架学习一

    Spring框架学习,转自http://blog.csdn.net/lishuangzhe7047/article/details/20740209 Spring框架学习(一) 1.什么是Spring ...

随机推荐

  1. 36.Altium Designer(Protel)网络连接方式Port和Net Label详解

    1.图纸结构      图纸包括两种结构关系: 一种是层次式图纸,该连接关系是纵向的,也就是某一层次的图纸只能和相邻的上级或下级有关系:另一种是扁平式图纸,该连接关系是横向的,任何两张图纸之间都可以建 ...

  2. Mysql去除重复

    常用的有两种方法,第一种就是select distinct name from table.但是有时候我们要返回多个字段时就用第二种方法select *, count(distinct name) f ...

  3. 转载:SQL索引一步到位

    原文: http://www.cnblogs.com/AK2012/archive/2013/01/04/2844283.html SQL索引一步到位(此文章为“数据库性能优化二:数据库表优化”附属文 ...

  4. 重新认识Box Model、IFC、BFC和Collapsing margins

    尊重原创,转载自: http://www.cnblogs.com/fsjohnhuang/p/5259121.html 肥子John^_^ 前言   盒子模型作为CSS基础中的基础,曾一度以为掌握了I ...

  5. js判断手机还是pc并跳转相关页面

    <script type="text/javascript"> function GetRequest() { var url = location.search; / ...

  6. hdu 1301 Jungle Roads 最小生成树

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1301 The Head Elder of the tropical island of Lagrish ...

  7. vertical sync

    these days, I am compelting vertical sync https://msdn.microsoft.com/zh-cn/library/windows/desktop/b ...

  8. HDOJ 1226 超级密码

    超级密码 Time Limit: 20000/10000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Subm ...

  9. Oracle自带的用户

    Oracle安装完毕创建数据库实例的时候,会自动生成三个用户sys,system,scott. sys用户是超级管理员,具有最高权限,充当sysdba角色,可以执行create database,默认 ...

  10. 原 JS监听回车事件

    原 JS监听回车事件 发表于2年前(2014-06-04 10:16)   阅读(6101) | 评论(0) 11人收藏此文章, 我要收藏 赞0 1月16日厦门 OSC 源创会火热报名中,奖品多多哦  ...