我们知道,spring有singleton和prototype作用域,而且从spring2.0开始,又增加了三种作用域,request、session、global session。session、global session的作用域是HTTP session和全局session。对于request和prototype,每一次请求都会产生一个新的bean实例,那么它们的具体有什么区别呢?而且,Spring不能对一个prototype bean的整个生命周期负责,这一点我不太能理解,这样它占用的资源就很高昂了,那么prototype的好处是什么?要结束它的生命周围,要怎么做?而且,感觉request和prototype,除了prototype的生命周期不会被回调以外,它们的作用是不是一样?有什么具体的区别呢?
采纳的答案
request依赖于web应用,request就类似与你的servlet,多个用户访问一个servlet,当然是访问servlet的多个实例,prototype实际上是new出来的,你想想,你的bean里new了一个对象,为什么要让spring给你销毁。prototype没有什么好不好的,只不过它能做singleton所不能做得(创建多个实例),在web项目之外也可以做request所不能做得事。prototype的销毁你不必关心,调用它的bean销毁了,它也就销毁了。request是web里所特有的。看来是java web做多了
提问者对于答案的评价:谢谢了
这是转自 http://www.iteye.com/problems/3104 的文章..这里面只说到了 "request是web里所特有的"
而我正好做到类似的应用 自己测试了下.... 把scope改成 reqeust 在struts2接受请求时是会报错的...大概的意思是不能将action和scope(作用域)是request的bean 结合使用, 其实我们用request或者prototype 的目的很明确,就是为了保证action的线程安全,因为spring默认的 scope是 singleton 单例模式的,,
然后我将scope改成prototype 后,action变成线程安全的了.就是每次访问都是新的实例,这点我测试过,能确定,
但这就让我产生一个疑问? 什么时候才可以用request??他和prototype 的区别是??????? 请高人回答
分享到:
相关推荐
web.xml配置filter和filtermapping,编写类 读取或写死filter的init-params中的字符编码传入 reqeust中 调用dofilter方法,乱码解决
vCenter中任务、事件清除 适用于:vCenter 6.x,数据库为内置数据库非第三方数据库; 用法:压缩包文件解压到C盘根目录,运行批处理即可,
它将请求存储在数据库中供管理员查看,也可以用于获取有关谁在线等的统计信息。 除了站点统计信息模块之外,通过使用active_users模板标记和管理器方法,您还可以使用django-request显示在特定时间内谁在线。 ...
要安装它,只需将以下行添加到您的Podfile中: pod 'EasyRefresher' 预习 用法 添加刷新器 tableView. refresh . header . addRefreshClosure { self . reqeust { self . tableView . refresh . header . ...
任何两个命令都是互相独立的, 除了下面提 到的 Reqeust-Response 联系外没有其它的联系。 命令的分类。命令分为两类,Request 命令和 Response 命令,Request 命令以"_REQ" 结束,Response 命令以"_RESP"结束。...
def index(reqeust): # 获取当前已经登录的用户 v = reqeust.COOKIES.get('username111') return render(reqeust,'index.html',{'current_user': v}) 这些方法是Django把一些常用的数据已经替我们封装好了,因此...
视图接收reqeust对象作为第一个参数,包含了请求的信息 视图就是一个Python函数,被定义在views.py中 定义完成视图后,需要配置urlconf,否则无法处理请求 在Django中,定义URLconf包括正则表达式、视图两部分 ...
问题一: wx.request() 怎么设置成 同步 答: reqeust是发起网络请求。没有同步接口 问题二: 体验版生成二维码后,体验者扫码后点击 “前往体验版” 没有反应 体验者用的是Android手机 请更新至6.5.2版本 下载地址 ...
做了N年的java开发从没有自己写过一个网站,最近乱忙活弄了一个企业家宣传网站。 跟大家一样遇到了中文字符集乱码问题,... String zh_value=reqeust.getParameter(“zh_value”); %> 重要的地方有以下两处 代码如下: p
NoHttp自定义请求,NoHttp深度自定义请求,NoHttp一个请求对象Reqeust解析所有的JavaBean。
单个reqeust 对CPU消耗越高,外部系统接口、IO影响速度越慢,系统吞吐能力越低,反之越高。系统吞吐量几个重要参数:QPS(TPS)、并发数、响应时间QPS(TPS):每秒钟request/事务数量并发数:系统同时处理的request...
一、JDK 常用的包 4 三、 Java 多态的具体体现 4 六、 九大隐式对象 5 十、 request.getSession()、reqeust.getSe
在微信公众号后台中,只能填写唯一的网页授权回调域名(也就是上述 REQUEST_URI 中的域名部分)。这种限制对于多个公众号的开发带来很多麻烦: 需要申请多个公众号 需要维护多个网页授权回调域名 wechat-oauth2-...
网络请求工具包 该代码受Austin Feight的启发。 根据我的情况,我可以处理多部分请求并处理可忽略的响应。 有解释为什么我们要用中文这样包装网络请求。... 在此文件中,我将指示我的base url并设置reqeust h
NoHttp自定义请求,NoHttp深度自定义请求,NoHttp一个请求对象Reqeust解析所有的JavaBean。博客讲解移步:http://blog.csdn.net/yanzhenjie1003/article/details/50845839
NoHttp自定义请求,NoHttp深度自定义请求,NoHttp一个请求对象Reqeust解析所有的JavaBean。博客讲解移步:http://blog.csdn.net/yanzhenjie1003/article/details/50845839
@ sitearcade / reqeust 具有一些有用功能的抓取包装器。 安装 npm i -D @sitearcade/reqeust 查看用法... 用法 文件即将推出!
通过挂接Push或Pull Reqeust Webhook事件来调用预先配置的AWS CodeBuild项目。 根据AWS CodeBuild上构建的状态/结果设置GitHub的CI状态。 AWS帐户/ gci / GitHub存储库 gci允许您在一个AWS账户中配置多个安装,如下...
这些是在 Firefox 中运行的 Greasemonkey(只需下载附加组件)脚本。 URL 必须每学期保持最新。 Course_add_bot 将每隔几秒一次又一次地添加请求的课程,直到您进入。 Course_reqeust_bot 将查找课程何时开放,...