当前位置:  编程语言>java/jsp

Bean的作用域及Spring 暴露 Bean实例的方法介绍

 
    发布时间:2014-1-15  


    本文导语:  bean的作用域 默认情况为单例方式:scope=”singleton”singleton 单实例作用域,这是Spring容器默认的作用域,使用singleton作用域生成的是单实例,在整个Bean容器中仅保留一个实例对象供所有调用者共享引用。单例模...

 bean作用域

  默认情况为单例方式:scope=”singleton

singleton

  单实例作用域,这是Spring容器默认的作用域,使用singleton作用域生成的是单实例,在整个Bean容器中仅保留一个实例对象供所有调用者共享引用单例模式对于那些无会话状态的Bean(如辅助工具DAO组件、业务逻辑组件等)是最理想的选择。

prototype

   原型模式,这是多实例作用域,针对每次不同的请求,Bean容器均会生成一个全新的Bean实例以供调用者使用。prototype作用域非常适用于那些需要保持会话状态的Bean实例,有一点值得注意的就是,Spring不能对一个prototype Bean的整个生命周期负责,容器在初始化、装配好一个prototype实例后,将它交给客户端,随后就对该prototype实例不闻不问了。因此,客户端要负责prototype实例的生命周期管理

request

针对每次HTTP请求,Spring容器会根据Bean的定义创建一个全新的Bean实例, 且该Bean实例仅在当前HTTP request内有效,因此可以根据需要放心地更改所建实例的内部状态, 而其他请求中根据Bean定义创建的实例,将不会看到这些特定于某个请求的状态变化。 当处理请求结束,request作用域的Bean实例将被销毁。该作用域仅在基于web的Spring ApplicationContext情形下有效。

请问为什麽在J2ee中客户端(测试时)用jndi定位enterprise bean的时候,可以把远程接口实例化?接口不是不可以生成对象的吗? iis7站长之家

   针对某个HTTP Session,Spring容器会根据Bean定义创建一个全新的Bean实例,且该Bean实例仅在当前HTTP Session内有效。 与request作用域一样,我们可以根据需要放心地更改所创建实例的内部状态,而别的HTTP Session中根据Bean定义创建的实例, 将不会看到这些特定于某个HTTP Session的状态变化。 当HTTP Session最终被废弃的时候,在该HTTP Session作用域内的Bean实例也会被废弃掉。该作用域仅在基于Web的Spring ApplicationContext情形下有效。

global session

   global session作用域类似于标准的HTTP Session作用域,不过它仅仅在基于portletWeb应用中才有意义。portlet规范定义了全局Session的概念,它被所有构成某个portlet Web应用的各种不同的portlet所共享。在global session作用域中定义的Bean被限定于全局portlet Session的生命周期范围内。如果我们是在编写一个标准的基于Servlet的Web应用,并且定义了一个或多个具有global session作用域的Bean,系统会使用标准的HTTP Session作用域,并且不会引起任何错误。该作用域仅在基于Web的Spring ApplicationContext情形下有效。


 Spring 暴露 Bean实例的方法介绍

 首先书写你想要暴露的类

public class UtilBean {
    private static UtilBean utilBean;
                                                                         
    public void init() {
        UtilBean .utilBean= this;
    }
    public static UtilBean getUtilBean() {
        return utilBean;
    }
    //下面写其它需要的方法和属性
        ...
}

  然后再Spring的配置文件里初始化实例,这里配置的“init-method”就是告诉Spring在生成utilBean实例之后要调用的方法,如上我们在init方法内把刚刚生成的实例赋值给了一个静态变量,这样在你调用时就可以直接使用而不需要做注入的配置.

  例:UtilBean util=UtilBean.getUtilBean();



  • 本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载,整理或搜集自网络.欢迎任何形式的转载,转载请注明出处.
    转载请注明:文章转载自:[169IT-IT技术资讯]
    本文标题:Bean的作用域及Spring 暴露 Bean实例的方法介绍
相关文章推荐:


站内导航:


特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

©2012-2021,,E-mail:www_#163.com(请将#改为@)

浙ICP备11055608号-3