spring框架:(二)bean标签中的scop、生命周期以及注入方式
- 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、生命周期以及注入方式相关推荐
- spring— Bean标签scope配置和生命周期配置
scope配置 singleton 默认值,单例的 prototype 多例的 request WEB 项目中,Spring 创建一个 Bean的对象,将对象存入到 request 域中 sessio ...
- 【Spring】Spring常用配置-Bean的初始化和销毁(生命周期)
转载请注明出处:http://blog.csdn.net/qq_26525215 本文源自[大学之旅_谙忆的博客] 分析 在我们实际开发的时候,经常会遇到在Bean使用之前或者之后做些必要的操作,Sp ...
- Spring框架(二)
Spring框架(二) 一.控制反转IOC和依赖注入DI 控制反转和依赖注入是对同一件事情的不同描述,从某个方面讲,就是它们描述的角度不同.控制反转是说不需要程序员管理和控制bean,是解耦的目的,而 ...
- java 自动装载_java_详解Java的Spring框架下bean的自动装载方式,Spring容器可以自动装配相互协 - phpStudy...
详解Java的Spring框架下bean的自动装载方式 Spring容器可以自动装配相互协作bean之间的关系,这有助于减少对XML配置,而无需编写一个大的基于Spring应用程序的较多的和元素. 自 ...
- Spring IoC容器与Bean管理18:Bean对象的作用域及生命周期三:对象生命周期;
说明: (1)本篇博客主要根据案例阐述对象的声明周期: (2)其中,比较重要的是注意下这个对应关系: (3)还有就是调用[registerShutdownHook()]销毁IoC容器: 目录 一:be ...
- Microsoft .Net Remoting系列专题之二:Marshal、Disconnect与生命周期以及跟踪服务
Microsoft .Net Remoting系列专题之二 一.远程对象的激活 在Remoting中有三种激活方式,一般的实现是通过RemotingServices类的静态方法来完成.工作过程事实上是 ...
- java中线程的生命周期
文章目录 java中Thread的状态 NEW Runnable BLOCKED WAITING TIMED_WAITING TERMINATED java中线程的生命周期 线程是java中绕不过去的 ...
- Android之React Native 中组件的生命周期
React Native 中组件的生命周期 概述 就像 Android 开发中的 View 一样,React Native(RN) 中的组件也有生命周期(Lifecycle).所谓生命周期,就是一个对 ...
- android 英语论文,Android中Activity的生命周期英语论文+译文.doc
Android中Activity的生命周期英语论文译文 北方民族大学 英文文献翻译 论文题目: Android环境及Activity介绍 院(部)名 称: 计算机科学与工程学院 学 生 姓 名: 陈 ...
最新文章
- 世界上第一个程序员竟然是女性,难以置信......
- RNN循环神经网络实现预测比特币价格过程详解
- Android中已经添加权限,依然提示缺少权限,此时你需要添加动态权限
- 白话(whitening)
- java三角形类 继承_java编程三角形(Triangle类)继承
- Doris之数据模型的选择建议
- 深入浅出WPF教程笔记_XAML介绍
- 浏览器cookie怎么清除,彻底清除上网痕迹只需这几步
- Sketch 52.2 macOS 破解版 汉化插件
- 【MySQL】数据库命令练习题及答案
- python代码格式化神器_牛逼啊!一个随时随地写Python代码的神器
- 云的基本概念(公有云、私有云、混合云, IaaS、PaaS、SaaS)
- 六爻:起卦、装卦、断卦
- 深信服easyconnect下载_深信服新一代数据防泄密解决方案荣登数安天下榜中榜
- 学习笔记:SpringCloud 微服务技术栈_实用篇②_黑马旅游案例
- 编程基本功训练:流程图画法及练习
- 基于盲盒商城的飞机大战游戏
- GEA 3.3 捕捉及处理错误
- hdu 3463Goldbach Division(打表法)
- django天天生鲜项目