1、bean标签的scop属性:
作用:用于指定对应bean的作用范围
取值:
   singleton:单例模式(默认);
   prototype:多例模式;
   request:作用于web应用的请求范围;
   session:作用于web应用的会话范围
   global-session:作用于集群环境的会话范围;
2、bean对象的生命周期:
单例对象:
     诞生:容器被创建时,对象就被创建出来了(立即加载);
     销毁:跟随容器的销毁而被销毁;
多例对象:
     诞生:只有对象被调用时才被创建(延迟加载);
     销毁:当创建的对象长时间未被调用时,由java的垃圾回收器销毁;
结论:单例模式,bean对象与容器同生共死;
   多例模式,用时创建,卸磨杀驴;
3、bean标签中的注入方式:
(1)、set注入
/***实体类:*      提供 Getter and Setter方法*/
public class
Student {private int id;private String name;private int age;Getter and Setter;
<bean id="stu" class="com.it.bean.Student"><property name="id" value="10"></property><property name="name" value="zhangsan"></property><property name="age" value="20"></property>
</bean>

    (2)、构造函数注入

public class Student {    private int id;private String name;private int age;public Student(int id, String name, int age) {this.id = id;this.name = name;this.age = age;}
}
<bean id="stu" class="com.it.bean.Student"><!-- 按顺序赋值注入 --><constructor-arg value="1"></constructor-arg><constructor-arg value="zhangsan"></constructor-arg><constructor-arg value="30"></constructor-arg> <!-- 按类型注入 --><constructor-arg type="int" value="1"></constructor-arg><constructor-arg type="java.lang.String" value="zhangsan"></constructor-arg><constructor-arg type="int" value="30"></constructor-arg><!-- 根据参数索引位置注入 --><constructor-arg index="0" value="1"></constructor-arg><constructor-arg index="1" value="zhangsan"></constructor-arg><constructor-arg index="2" value="30"></constructor-arg> <!-- 根据参数名注入 --><constructor-arg name="id" value="1"></constructor-arg><constructor-arg name="name" value="zhangsan"></constructor-arg><constructor-arg name="age" value="30"></constructor-arg>
</bean>

以上涉及到的注入为基本数据类型和string数据的注入;当遇到复杂类型如何解决呢?
1、date类型

//在实体类中加入日期类型数据
private Date birthday;
<!-- 新定义一个bean -->
<bean id="nowDate" class="java.util.Date"></bean><!-- 以构造注入为例 -->
<bean id="stu" class="com.it.bean.Student"><constructor-arg name="id" value="1"></constructor-arg><constructor-arg name="name" value="zhangsan"></constructor-arg><constructor-arg name="age" value="30"></constructor-arg><!-- 以 ref 代替 value 引入新定义的 id 为 “nowDate” 的 bean --><constructor-arg name="birthday" ref="nowDate"></constructor-arg>
</bean>

2、集合类型

//实体类
private String[] str;
private List<String> personList;
private Set<String> personSet;
private Map<String, String> personMap;
private Properties properties;

  (1)list类集合:array、list、set;结构相同

<bean id="stu" class="com.it.bean.Student"><property name="str"><array><value>zhangsan</value><value>lisi</value><value>wangwu</value></array></property><property name="personList"><list><value>zhangsan</value><value>lisi</value><value>wangwu</value></list></property><property name="personSet"><set><value>zhangsan</value><value>lisi</value><value>wangwu</value></set></property>
</bean>

  (1)Map类集合:map、properties;结构相似

<bean id="stu" class="com.it.bean.Student"><!--map集合--><property name="personMap"><map><entry key="name"><value>zhangsan</value></entry><entry key="address"><value>beijing</value></entry></map></property><!--properties类型--><property name="properties"><props><prop key="name">zhangsan</prop><prop key="address">beijing</prop></props></property>
</bean>

spring框架:(二)bean标签中的scop、生命周期以及注入方式相关推荐

  1. spring— Bean标签scope配置和生命周期配置

    scope配置 singleton 默认值,单例的 prototype 多例的 request WEB 项目中,Spring 创建一个 Bean的对象,将对象存入到 request 域中 sessio ...

  2. 【Spring】Spring常用配置-Bean的初始化和销毁(生命周期)

    转载请注明出处:http://blog.csdn.net/qq_26525215 本文源自[大学之旅_谙忆的博客] 分析 在我们实际开发的时候,经常会遇到在Bean使用之前或者之后做些必要的操作,Sp ...

  3. Spring框架(二)

    Spring框架(二) 一.控制反转IOC和依赖注入DI 控制反转和依赖注入是对同一件事情的不同描述,从某个方面讲,就是它们描述的角度不同.控制反转是说不需要程序员管理和控制bean,是解耦的目的,而 ...

  4. java 自动装载_java_详解Java的Spring框架下bean的自动装载方式,Spring容器可以自动装配相互协 - phpStudy...

    详解Java的Spring框架下bean的自动装载方式 Spring容器可以自动装配相互协作bean之间的关系,这有助于减少对XML配置,而无需编写一个大的基于Spring应用程序的较多的和元素. 自 ...

  5. Spring IoC容器与Bean管理18:Bean对象的作用域及生命周期三:对象生命周期;

    说明: (1)本篇博客主要根据案例阐述对象的声明周期: (2)其中,比较重要的是注意下这个对应关系: (3)还有就是调用[registerShutdownHook()]销毁IoC容器: 目录 一:be ...

  6. Microsoft .Net Remoting系列专题之二:Marshal、Disconnect与生命周期以及跟踪服务

    Microsoft .Net Remoting系列专题之二 一.远程对象的激活 在Remoting中有三种激活方式,一般的实现是通过RemotingServices类的静态方法来完成.工作过程事实上是 ...

  7. java中线程的生命周期

    文章目录 java中Thread的状态 NEW Runnable BLOCKED WAITING TIMED_WAITING TERMINATED java中线程的生命周期 线程是java中绕不过去的 ...

  8. Android之React Native 中组件的生命周期

    React Native 中组件的生命周期 概述 就像 Android 开发中的 View 一样,React Native(RN) 中的组件也有生命周期(Lifecycle).所谓生命周期,就是一个对 ...

  9. android 英语论文,Android中Activity的生命周期英语论文+译文.doc

    Android中Activity的生命周期英语论文译文 北方民族大学 英文文献翻译 论文题目: Android环境及Activity介绍 院(部)名 称: 计算机科学与工程学院 学 生 姓 名: 陈 ...

最新文章

  1. 世界上第一个程序员竟然是女性,难以置信......
  2. RNN循环神经网络实现预测比特币价格过程详解
  3. Android中已经添加权限,依然提示缺少权限,此时你需要添加动态权限
  4. 白话(whitening)
  5. java三角形类 继承_java编程三角形(Triangle类)继承
  6. Doris之数据模型的选择建议
  7. 深入浅出WPF教程笔记_XAML介绍
  8. 浏览器cookie怎么清除,彻底清除上网痕迹只需这几步
  9. Sketch 52.2 macOS 破解版 汉化插件
  10. 【MySQL】数据库命令练习题及答案
  11. python代码格式化神器_牛逼啊!一个随时随地写Python代码的神器
  12. 云的基本概念(公有云、私有云、混合云, IaaS、PaaS、SaaS)
  13. 六爻:起卦、装卦、断卦
  14. 深信服easyconnect下载_深信服新一代数据防泄密解决方案荣登数安天下榜中榜
  15. 学习笔记:SpringCloud 微服务技术栈_实用篇②_黑马旅游案例
  16. 编程基本功训练:流程图画法及练习
  17. 基于盲盒商城的飞机大战游戏
  18. GEA 3.3 捕捉及处理错误
  19. hdu 3463Goldbach Division(打表法)
  20. django天天生鲜项目

热门文章

  1. 竖版视频怎么批量转换成横版视频
  2. 前端常用英语单词(手都打累了)!
  3. 《Blender图解教程:新手入门练习》
  4. 面试回忆之二:MLY公司的面试题
  5. 词云中去重复的词_为什么要避免标题关键词重复?
  6. Anomaly Detection in Quasi-Periodic TimeSeries Based on Automatic Data Segmentation and Attentional
  7. switch范围判断、switch区间判断
  8. 如何让图片变成全景图,vr全景图怎么拍摄和制作
  9. PostgreSQL AUTO INCREMENT
  10. 尚融宝28-投资列表展示