记录spring框架学习:beanFactory的XML之旅(2)

        1.bean的scope

        spring容器最初提供了两种bean的scope类型:singleton和proptotype,在2.0发布后,又引入了另外三种scope类型: request, session 和 global session类型。

        (1)singleton

          对象实例数量。在一个容器中只存在一个共享实例,所有对该类型bean的依赖都引用这一单一实例。

          对象存货时间。从bean定义,容器启动,到它第一次被请求而实例化开始,只要容器不销毁或者退出,会一直存活。

        通常不知道bean的scope,singleton便是默认的scope。以下三种配置是统一的效果。

        <bean id="oobject1" class=".../ xxxobject" />

        <bean id="oobject1" class=".../ xxxobject"  singleton="true" />

        <bean id="oobject1" class=".../ xxxobject"   scope="singleton" /> 

         (2)prototype

           容器在接到该类型对象请求的时候,每次都会重新生成一个新的对象实例给请求方。即不会共享。以下两种配置的效果是一样的。

        <bean id="oobject1" class="../ xxxobject" singleton="false" />

        <bean id="oobject1" class="../ xxxobject" scope="prototype" />

        (3)request , session, global session

            request:

            spring容器,即XmlWebApplicationContext会为每个HTTP请求创建一个全新的request对象供当前请求使用。

            session:

            对于spring容器来说,最常见放到session中的信息就是用户的登录信息。

            global session:

            除了在基于portlet的web应用中有意义,在基于servlet的web容器使用,几乎与session没有区别。

        (4)自定义scope类型。

            所有的scope类型都实现了org.springframework.beans.factory.config.Scope接口。

            具体请自行查看。要自定义scope类型则需要实现该接口,其中get和remove方法是必须实现的。

       

猜你喜欢

转载自blog.csdn.net/qq_40341361/article/details/79879693