你有一辆车,这个车是你的,是有状态(你可以放自己东西)的,这就是stateful session bean城里有一些Taxi,你可以用,用完别人用,这是stateless的

解决方案 »

  1.   

    bdsc:
    如果换成程序来说,应该是怎样的呢?请指教,谢谢!
      

  2.   

    编程的细节我就不说了。stateful/less bean的是有生存期,客户请求,ejb container根据请求生成(注1)一个对象,container将接口给客户,客户使用结束后,container将对象销毁。对象的生成和销毁的代价(系统开销)很大,如果要提高效率,最好的方法就是container能cache这些bean对象,客户请求时container不用再生成一个对象,而是找一个现成的对象,将此对象的接口返给客户,客户使用后,通知container。如果在bean对象里要存储状态(跟一定客户有关,其他客户不能使用),由于一个状态和一个状态是不一样的,所以不能简单清楚的实现cache(注2)。所以,一般的container开发商,对stateless bean都是提供了一些实现(如:cache)来提高效率。注1:对stateless bean对象通常是从现有的空闲对象中找一个。
    注2:如果要对stateful bean对象缓存的话,我能想到的方法是container给程序员一个callback,类似一个初始化方法,将以前的状态清除或用新的状态信息覆盖。