• 有状态无状态回话bean


    1、有状态(Stateful)

            可以在不同的方法调用间保持针对各个客户端的状态

           与客户端的联系必须被维持,这样做开销要大一些

           有状态也可以这样理解,它存在存储能力,也就是说至少有一个属性来标识它目前的状态,例如:

    有状态会话Bean与无状态会话Bean - lfsyhuangaigang@126 - 黄爱岗 ------ 信息技术提高班     

           注意:有状态会话bean,每个用户有自己特有的一个实例,在用户的生存期内,bean保持了用户的信息,即“有状态”;一旦用户灭亡(调用结束或实例结束),bean的生命期也告结束。即每个用户最初都会得到一个初始的bean。

    2、无状态(Stateless)

            在不同方法调用间不保留任何状态

            事务处理必须在一个方法中结束,这样占用资源较少,还可以被共享

            无状态从字面的意思来理解就是没有能够标识它目前状态属性的bean,例如:

     
    有状态会话Bean与无状态会话Bean - lfsyhuangaigang@126 - 黄爱岗 ------ 信息技术提高班      

          生成的两个实例对象,它们都是没有状态的,对于客户端来说,它们是没有差别的(但stateless1  != stateless2),所以同一个无状态回话bean的实例都是相同的,可以被不同的客户端重复使用。
          无状态会话bean:bean一旦实例化就被加进会话池中,各个用户都可以共用。即使用户已经消亡,bean的生命期也不一定结束,它可能依然存在于会话池中,供其他用户调用。由于没有特定的用户,那么也就不能保持某一用户的状态,所以叫无状态bean。但无状态会话bean并非没有状态,如果它有自己的属性(变量),那么这些变量就会受到所有调用它的用户的影响,这是在实际应用中必须注意的。

    3、总结

           无状态的会话bean不保持任何与客户端的会话状态,发给 bean的每一次请求需同时提供数据来进行请求处理。有状态的会话bean,与之相反,可以保持状态,并且该状态可以在与客户的多次会话中存在。
           有状态的bean带来了支持会话状态的好处但同时付出了性能的代价。无状态bean具有更好的性能,但却又不具备与客户端的亲合力。struts2中将 Action和ActionForm合二为一,就有了状态,因为每次请求都创建一个新的实例,所以没有线程安全问题,而struts1就不能这么做 了,struts1的Action采用的是单例模式,仅有Action的一个实例来处理所有的请求,所以使用struts1的时候要特别小心,要保证 Action的资源是线程安全最好采用无状态。

     

     

     

    摘自:http://blog.163.com/lfsyhuangaigang@126/blog/static/77436670201322092944359/

     

     

  • 相关阅读:
    Linux查看文件被哪个进程占用
    命令行启动rstudio server
    Spring Boot配置文件及多环境配置
    Spring Boot yml配置文件
    js实现自定义概率抽奖算法
    Flutter之adb: failed to install apk的解决方法
    Flutter之不简单的搜索条
    git操作之commit规范
    Flutter之毛玻璃效果的实现
    固定定位下div水平居中
  • 原文地址:https://www.cnblogs.com/mingluosunshan/p/4941549.html
Copyright © 2020-2023  润新知