精通有状态vs无状态(Stateful vs Stateless)—Immutable模式之姐妹篇

本文探讨了有状态(Stateful)和无状态(Stateless)的概念,主要围绕Immutable模式的姐妹篇展开。有状态对象保存数据,非线程安全,而无状态对象不保存数据,是线程安全的。文章通过代码示例解释了StatefulBean和StatelessBeanService的区别,并讨论了单例模式中的状态管理,以及在EJB、Spring、Servlet和Struts中的应用。建议在开发中优先选择无状态对象,以实现更好的线程安全性。
摘要由CSDN通过智能技术生成

http://www.iteye.com/topic/960532

 

 

我相信有不少人还不明白有状态和无状态(Stateful and Stateless)的概念,那么我们今天就来谈谈有状态和无状态,一方面不断总结提高自我,另一方面兼扫盲。这是Immutable不变模式的姐妹篇,大家可以参照着读。
Immutable不变模式的分析blog: http://www.iteye.com/topic/959751

基本概念:

有状态就是有数据存储功能。有状态对象(Stateful Bean),就是有实例变量的对象,可以保存数据,是非线程安全的。在不同方法调用间不保留任何状态。

无状态就是一次操作,不能保存数据。无状态对象(Stateless Bean),就是没有实例变量的对象.不能保存数据,是不变类,是线程安全的。

代码更好理解:

Java代码 复制代码  收藏代码
  1. /**  
  2.  * 有状态bean,有state,user等属性,并且user有存偖功能,是可变的。  
  3.  *   
  4.  * @author Peter Wei  
  5.  *   
  6.  */  
  7. public class StatefulBean {   
  8.   
  9.     public int state;   
  10.     // 由于多线程环境下,user是引用对象,是非线程安全的   
  11.     public User user;   
  12.   
  13.     public int getState() {   
  14.         return state;   
  15.     }   
  16.   
  17.     
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值