锁定老帖子 主题:EJB的资料辅导(2)
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2008-12-08
SessionBean
SessionBean接受客户端的请求,并作出响应,是商业过程处理对象。 无状态SessionBean(Statless) 无状态Session是可以被重用,不能被客户端并发共享,只可以串行共享,并不保留客户端方法调用后的的状态,而是直接返回。 无状态SessionBean的生命周期
如果实例不存在,就会调用构造方法,然后调用资源注入方法,接着会调用有@PostConstruct标注的方法,在销毁时会调用有@PerDestroy标注的方法,然后销毁对象,如果实例存在就会从Bean实例池中取出实例并调用方法。 回调方法是基于事件机制的。
生命周期回调方法的规则 在销毁对象时回调这个方法
有状态的SessionBean(Statful) 有状态的SessionBean只为一个客户端服务,不能共享,并且会保留方法调用后的状态。 当有状态的SessionBean暂时不被使用时,就会被存储到缓存当中,也就是被存到虚拟内存或者是将信息同步到Session数据库中(Session数据库是应用服务器所提共的小型数据库,用来保存Session的信息,多应用服务器共享Session数据库,同步Bean的信息,达到集群处理)。 swap out passivation钝化过程,保存SessionBean的状态,在SessionBean处在事务中时是不会进行钝化的。 有状态的Session,会保存成员变量(没有加transient关键字,以及串行化的类型和基本类型),也会保存其他的SessionBean的引用。 对有状态的SessionBean中有transient属性时,就需要在Bean中提供激活的方法也就是 在SessionBean中实现事务处理时要实现SessionSynchronization接口。 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
浏览 1246 次