25、EJB 回调与拦截器详解

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 内存耗尽前清除该实例,将其状态保存

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值