消息驱动 Bean 全面解析
1. 消息驱动 Bean 方法调用机制
在消息驱动 Bean(MDB)的实现中,容器会调用一系列方法来管理 Bean 实例。以下是各方法的具体作用:
- setMessageDrivenContext() :容器调用此方法将 Bean 实例与上下文关联,上下文是 MessageDrivenContext
接口的实例,且由容器维护。
- ejbRemove() :当容器要移除 Bean 实例时调用该方法,开发者可在此方法中释放实例持有的资源。
- onMessage() :当有 JMS 消息需要处理时,容器调用此方法,并将消息作为参数传入,开发者在此方法中编写处理消息的业务逻辑。
- ejbCreate() :在创建 MDB 实例的过程中,容器会调用此方法。此方法虽不对应任何接口中的方法,但必须实现,可在此方法中进行初始化操作和资源分配。
2. MDB 类的要求
为确保 MDB 在不同 EJB 容器间的可移植性,MDB 类需满足以下要求:
2.1 类定义要求
- 类必须实现
javax.ejb.MessageDrivenBean
接口。 - 类必须实现
javax.jms.MessageListener
接口。 - 类必须是公共的、非抽象的且非最终的。