那个视频网站可以做桌面背景郑州网站公司排名
那个视频网站可以做桌面背景,郑州网站公司排名,如何让域名到网站,重庆网站备案注销Spring上个版本的IoC容器支持两个不同的bean作用域#xff08;单例与原型#xff09;。Spring 2.0改进了这一点#xff0c;不仅提供了一些依赖于Spring部署环境#xff08;比如说#xff0c;在web环境中的request和session作用域bean#xff09;的额外的作用域,而且提供了…Spring上个版本的IoC容器支持两个不同的bean作用域单例与原型。Spring 2.0改进了这一点不仅提供了一些依赖于Spring部署环境比如说在web环境中的request和session作用域bean的额外的作用域,而且提供了所谓的钩子hooks因为找不到更好的表达使Spring用户可以创造自己的作用域。 应该注意的是即使单例与原型作用域beans的基本内在实现发生了变化上述变化对最终用户来说是透明的...现有的配置不需要改变或放弃。 如何使用spring的作用域 bean idrole classspring.chapter2.maryGame.Role scopesingleton/ 下面分别对spring 中的作用域分别介绍一下 1、singleton作用域 当一个bean的作用域设置为singleton那么Spring IOC容器中只会存在一个共享的bean实例并且所有对bean的请求只要id与该bean定义相匹配则只会返回bean的同一实例。换言之当把一个bean定义设置为singleton作用域时Spring IOC容器只会创建该bean定义的唯一实例。这个单一实例会被存储到单例缓存singleton cache中并且所有针对该bean的后续请求和引用都将返回被缓存的对象实例这里要注意的是singleton作用域和GOF设计模式中的单例是完全不同的单例设计模式表示一个ClassLoader中只有一个class存在而这里的singleton则表示一个容器对应一个bean也就是说当一个bean被标识为singleton时候spring的IOC容器中只会存在一个该bean。 配置实例 bean idrole classspring.chapter2.maryGame.Role scopesingleton/ 或者 bean idrole classspring.chapter2.maryGame.Role singletontrue/ 2、prototype prototype作用域部署的bean每一次请求将其注入到另一个bean中或者以程序的方式调用容器的getBean()方法都会产生一个新的bean实例相当于一个new的操作对于prototype作用域的bean有一点非常重要那就是Spring不能对一个prototype bean的整个生命周期负责容器在初始化、配置、装饰或者是装配完一个prototype实例后将它交给客户端随后就对该prototype实例不闻不问了。不管何种作用域容器都会调用所有对象的初始化生命周期回调方法而对prototype而言任何配置好的析构生命周期回调方法都将不会被调用。清除prototype作用域的对象并释放任何prototype bean所持有的昂贵资源都是客户端代码的职责。让Spring容器释放被singleton作用域bean占用资源的一种可行方式是通过使用bean的后置处理器该处理器持有要被清除的bean的引用。 配置实例 bean idrole classspring.chapter2.maryGame.Role scopeprototype/ 或者 beanidrole classspring.chapter2.maryGame.Role singletonfalse/ 3、request request表示该针对每一次HTTP请求都会产生一个新的bean同时该bean仅在当前HTTP request内有效配置实例 request、session、global session使用的时候首先要在初始化web的web.xml中做如下配置 如果你使用的是Servlet 2.4及以上的web容器那么你仅需要在web应用的XML声明文件web.xml中增加下述ContextListener即可 web-app ... listener listener-classorg.springframework.web.context.request.RequestContextListener/listener-class /listener ... /web-app 如果是Servlet2.4以前的web容器,那么你要使用一个javax.servlet.Filter的实现 web-app .. filter filter-namerequestContextFilter/filter-name filter-classorg.springframework.web.filter.RequestContextFilter/filter-class /filter filter-mapping filter-namerequestContextFilter/filter-name url-pattern/*/url-pattern /filter-mapping ... /web-app 接着既可以配置bean的作用域了 bean idrole classspring.chapter2.maryGame.Role scoperequest/ 4、session session作用域表示该针对每一次HTTP请求都会产生一个新的bean同时该bean仅在当前HTTP session内有效配置实例 配置实例 和request配置实例的前提一样配置好web启动文件就可以如下配置 bean idrole classspring.chapter2.maryGame.Role scopesession/ 5、global session global session作用域类似于标准的HTTP Session作用域不过它仅仅在基于portlet的web应用中才有意义。Portlet规范定义了全局Session的概念它被所有构成某个portlet web应用的各种不同的portlet所共享。在global session作用域中定义的bean被限定于全局portlet Session的生命周期范围内。如果你在web中使用global session作用域来标识bean那么web会自动当成session类型来使用。 配置实例 和request配置实例的前提一样配置好web启动文件就可以如下配置 bean idrole classspring.chapter2.maryGame.Role scopeglobal session/ 6、自定义bean装配作用域 在spring 2.0中作用域是可以任意扩展的你可以自定义作用域甚至你也可以重新定义已有的作用域但是你不能覆盖singleton和prototypespring的作用域由接口org.springframework.beans.factory.config.Scope来定义自定义自己的作用域只要实现该接口即可下面给个实例 我们建立一个线程的scope该scope在表示一个线程中有效代码如下 publicclass MyScope implements Scope ...{ privatefinal ThreadLocal threadScope new ThreadLocal() ...{ protected Object initialValue() ...{ returnnew HashMap(); } }; public Object get(String name, ObjectFactory objectFactory) ...{ Map scope (Map) threadScope.get(); Object object scope.get(name); if(objectnull) ...{ object objectFactory.getObject(); scope.put(name, object); } return object; } public Object remove(String name) ...{ Map scope (Map) threadScope.get(); return scope.remove(name); } publicvoid registerDestructionCallback(String name, Runnable callback) ...{ } public String getConversationId() ...{ // TODO Auto-generated method stub returnnull; } } 转载于:https://www.cnblogs.com/zhouxiansheng/p/3954707.html
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/88264.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!