深入探索EJB 3会话Bean开发与JPA实体创建
1. 有状态会话Bean概述
有状态会话Bean之所以被称为有状态,是因为它们能与客户端保持对话状态。客户端每次调用方法时,可以初始化和更改其实例字段。在处理客户端调用的业务方法时,Bean可以利用这种对话状态。有状态会话Bean通常作为客户端的代理,管理其他Bean的交互,并代表客户端应用程序执行工作。
2. 有状态Bean的生命周期
当新的客户端会话启动时,有状态会话Bean(SFSB)的默认构造函数会被调用,资源(如果有的话)会被注入,并且 @PostConstruct 回调会执行。此时,新创建的Bean会被存储在缓存中,并执行客户端通过业务接口调用的请求业务方法。
如果客户端在一段时间内处于空闲状态,容器会将Bean实例钝化。钝化有状态Bean意味着将其从活动缓存中移出,进行序列化,并存储在临时存储中。如果客户端调用了已钝化的Bean,它将被重新激活(从临时存储中恢复到内存中)。
如果客户端在一段时间内没有调用已钝化的Bean实例,该实例将被销毁。也可以通过 remove 方法按需销毁Bean。
有状态会话Bean的生命周期还涉及其他回调方法,除了 @PostConstruct 和 @PreDestroy ,还有 @PrePassivate 和 @PostActivate 。 @PrePassivate 方法在有状态Bean实例钝化之前被调用,可用于释
超级会员免费看
订阅专栏 解锁全文
52

被折叠的 条评论
为什么被折叠?



