EJB 回调与拦截器详解
在企业级 Java 开发中,EJB(Enterprise JavaBeans)的回调和拦截器是非常重要的特性,它们能帮助开发者更好地管理资源、实现横切关注点。下面将详细介绍 EJB 的相关特性。
1. EJB 池参数与单例会话 Bean
部分容器如 GlassFish 允许自定义 EJB 池的多个参数,包括池的初始大小、最小和最大 Bean 数量、池空闲超时后要移除的 Bean 数量以及池超时的毫秒数。不过这些选项是特定于实现的,其他 EJB 容器可能不支持。
单例会话 Bean 的创建取决于是否使用 @Startup 进行急切实例化,或者是否通过 @DependsOn 依赖于另一个已急切创建的单例。如果是,则在部署时创建实例;否则,在客户端调用业务方法时由容器创建实例。单例 Bean 的生命周期与应用程序相同,在容器关闭时销毁。
2. 有状态会话 Bean
有状态会话 Bean 在编程上与无状态或单例会话 Bean 差异不大,只是元数据不同(使用 @Stateful 而非 @Stateless 或 @Singleton )。其真正区别在于有状态 Bean 会与客户端保持对话状态,因此生命周期稍有不同。
容器会为每个客户端生成一个实例并分配给该客户端,客户端的每个请求都会传递给同一个实例。根据应用情况,可能会形成客户端与有状态 Bean 的一对一关系。如果客户端长时间不调用其 Bean 实例,容器会在 JVM 内存耗尽前清除该实例,将其状态保存
超级会员免费看
订阅专栏 解锁全文
1707

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



