oa系统登录网址,谷歌英文网站优化,邯郸人才网,网页设计实训总结1500字通用一、前言#xff1a;Bean对象简介
在Spring项目中#xff0c;那些由Spring IoC容器所管理的对象#xff0c;称为bean。简单地讲#xff0c;bean就是由Spring容器初始化、装配及管理的对象#xff0c;除此之外#xff0c;bean就与应用程序中的其他对象没有什么区别了。 而…一、前言Bean对象简介
在Spring项目中那些由Spring IoC容器所管理的对象称为bean。简单地讲bean就是由Spring容器初始化、装配及管理的对象除此之外bean就与应用程序中的其他对象没有什么区别了。 而bean定义以及bean相互间的依赖关系将通过配置元数据来描述。
上一段描述简析 spring的bean对象和普通java对象的区别就是spring的bean对象由spring创建spring容器管理spring实现装配(注入)。 普通java对象是指没有使用spring框架时,创建管理装配(注入)是由开发人员自己完成的。
二、Bean对象的5个作用域: 编程人员可以控制bean对象的作用域(就是bean对象的作用范围)。主要就是控制某个bean对象的可用范围。
1.Prototype(原型模式)的效果是每次服务端用getBean方法获取同一个类的bean对象时都会创建一个新的bean对象。(prototype模式不会共享bean对象的状态适用于每次操作的Bean对象都是不同状态的情况或者需要频繁创建新实例的情况)
2.而第二种request模式的效果是每次客户端发出Http请求才创建一个bean对象。 相比较而言Prototype原型模式会相对更频繁的创建对象而request模式是一次复杂Http请求处理完毕第二次Http请求才创建一个新的同类型的bean对象(request模式下每个bean对象对于一个Http请求是唯一的)。 举例Prototype原型模式就相当于吃花生豆每次张嘴吃的都是不同的花生豆。 Request模式就相当于小孩吃大饼干一次吃大饼干一次请求吃的是同一个饼干(直到饼干吃完了小孩再向大人发起第二次请求才会吃到第二块饼干)。
3.session模式相比较request模式而言request模式创建bean对象会相对更加频繁。 因为request是客户端每次发出Http请求都会创建一个新的bean对象。而session模式指的是客户端和服务端一次通信完毕。此客户端在一段有效的时间内没有再发出请求则都属于一个session范围不会创建第二个bean对象(在此有效的时间内客户端可以发出多次Http请求)。 所以session模式比request模式的bean对象作用域更大bean对象创建频率相对较少。 举例session模式就相当于小孩吃一锅米饭在吃同一顿饭的时间内小孩向大人发出多次吃饭请求吃的都是同一锅饭(直到这顿饭吃饭到下一次吃饭的会话下一顿饭的时间才会制造第二锅饭)(session模式是同一个会话内多次请求使用的是同一个bean对象同一个吃饭时间内多次舀饭舀的是同一锅饭)(适用于保存用户特定的数据或状态)。 4.Golobal Session模式在整个Portlet规范的web项目中只会创建一个全局会话的Bean对象(一个Portlet规范的web项目保持一个bean对象)。注意spring项目中没有Golobal Session模式。 举例 饭店卖饭多个家庭可以都吃一锅内的饭 而且一锅饭可以卖好几顿(比如一大锅稀饭早上中午都售卖)Golobal Session模式比session模式的作用域更大。 (Golobal Session模式对应一个项目一个类只有一个bean对象 而session模式是一个项目内同一个客户端在某个有效的时间内访问的是同一个bean对象如果超出这个有效时间此客户端访问本项目时同一个bean对象会创建不同的bean对象) 5.singleton模式同一个bean对象在同一个spring容器中只创建一份儿。Bean对象是全局共享的适用于无状态的Bean或者需要在多个组件之间共享数据的情况。 我的理解和上边的Golobal Session模式类似(设置了singleton模式的bean对象在一个web项目中只有一份儿) 其中request、session、和golobalSession三种模式只适用于WebApplica
tionContext上下文环境(就是只适用于web项目)。 而singleton和prototype两个作用域适用于任何类型的项目。 五大作用域范围对比 总结 5种作用域的大小 prototype request session golobal session singleton
我的理解 在spring项目中只需要记忆prototype request session singleton。 因为golobal session不适用于spring项目而且我认为golobal session 和 singleton都是在一个项目中只保留一个bean对象。 By zhaoYongQi 2024/03/07 17:37 三、知识点精简
以内内容的来源于网络文章链接如下(如有冒犯请留言)
https://blog.csdn.net/qq_62262918/article/details/135360689
下面是网上一篇比较精简的文章方便快速理解
1.Singleton单例默认的作用域 在整个应用程序中只创建一个Bean实例。所有对该Bean的请求都将返回同一个实例。Bean是全局共享的适用于无状态的Bean或者需要在多个组件之间共享数据的情况。 2.Prototype原型 每次对Bean的请求都会创建一个新的实例。没有共享状态适用于有状态的Bean或者需要频繁创建新实例的情况。 3.Request请求 在每个HTTP请求中创建一个新的Bean实例。每个请求的Bean实例对于该请求是唯一的。仅在Web应用程序的上下文中有效适用于处理HTTP请求的控制器或服务。 4.Session会话 在每个用户会话Session中创建一个新的Bean实例。对于同一用户的所有请求都将使用相同的Bean实例。仅在Web应用程序的上下文中有效适用于保存用户特定的数据或状态。 5.Global Session全局会话 在整个应用程序的全局会话中创建一个新的Bean实例。仅在基于Portlet的Web应用程序中有效通常与Portlet会话一起使用。