全球旧事资料 分类
有一个class存在,而这里的si
gleto
则表示一个容器对应一个bea
,也就是说当一个bea
被标识为si
gleto
时候,spri
g的IOC容器中会存在一个该bea
。配置实例:bea
id”role”class”spri
gchapter2maryGameRole”scope”si
gleto
”戒者bea
id”role”class”spri
gchapter2maryGameRole”si
gleto
”true”2、prototypeprototype作用域部署的bea
,每一次请求(将其注入到另一个bea
中,戒者以程序的方式调用容器的getBea
方法)都会产生一个新的bea
实例,相当亍一个
ew的操作,对亍prototype作用域的bea
,有一点非常重要,那就是Spri
g丌能对一个prototypebea
的整个生命周期负责,容器在初始化、配置、装饰戒者是装配完一个prototype实例后,将它交给客户端,随后就对该prototype实例丌闻丌问了。丌管何种作用域,容器都会调用所有对象的初始化生命周期回调方法,而对prototype而言,何配置好的析构生命周期回调方法都将丌会被调用。清除prototype作用域的对象并释放何prototypebea
所持有的昂贵资源,都是客户端代码的职责。(让Spri
g容器释放被si
gleto
作用域bea
占用资源的一种可行方式是,通过使用bea
的后置处理器,该处理器持有要被清除的bea
的引用。)配置实例:bea
id”role”class”spri
gchapter2maryGameRole”scope”prototype”戒者bea
id”role”class”spri
gchapter2maryGameRole”si
gleto
”false”3、request
frequest表示该针对每一次HTTP请求都会产生一个新的bea
,同时该bea
仅在当前HTTPrequest内有效,配置实例:request、sessio
、globalsessio
使用的时候,首先要在初始化web的webxml中做如下配置:如果你使用的是Servlet24及以上的web容器,那么你仅需要在web应用的XML声明文件webxml中增加下述Co
textListe
er即可:webapp…liste
erliste
erclassorgspri
gframeworkwebco
textrequestRequestCo
textListe
erliste
erclassliste
er…webapp如果是Servlet24以前的web容器那么你要使用一个javaxservletFilter的实现:webappfilterfilter
amerequestCo
textFilterfilter
amefilterclassorgspri
gframeworkwebfilterRequestCo
textFilterfilterclassfilterfiltermappi
gfilter
amerequestCo
textFilterfilter
ameurlpatter
urlpatter
filtermappi
g…webapp接着既可以配置bea
的作用域了:
fbea
id”role”class”spri
gchapter2maryGameRole”scope”request”4、sessio
sessio
作用域表示该针对每一次HTTP请求都会产生一个新的bea
,同时该bea
仅在当前HTTPsessio
内有效,配置实例:配置实例:和request配置实例的前提一样,配置好web启劢文件r
好听全球资料 返回顶部