消息驱动bean
消息驱动Bean(MDB) 是设计用来专门处理基于消息请求的组件。一个MDB类必须实现MessageListener 接口。当容器检测到bean守候的队列一条消息时,就调用onMessage()方法,将消息作为参数传入。MDB在OnMessage()中决定如何处理该消息。你可以用注释来配置MDB 监听哪一条队列。当MDB 部署时,容器将会用到其中的注释信息。
当一个业务执行的时间很长,而执行结果无需实时向用户反馈时,很适合使用消息驱动Bean。如订单成功后给用户发送一封电子邮件或发送一条短信等。
消息驱动bean是一个异步消息使用者。当JMS消息到达时,容器激发消息驱动bean。消息驱动bean既没有本地接口也没有组件接口。消息驱动bean实例是一个消息驱动bean类的实例。
对客户机来说,消息驱动bean是一个在服务器上实现某些业务逻辑的JMS消息使用者。客户机通过JMS发送消息到JMS Destination (Queue或Topic)来访问消息驱动bean,而消息驱动bean类是JMS Destination的MessageListener。
消息驱动bean实例没有会话状态。这意味着当不涉及服务客户机消息时,所有的bean实例都是等同的。
消息驱动bean是匿名的。它们没有客户机可视的标识。
容器创建消息驱动bean实例来进行消息处理,而消息驱动bean是这些消息的使用者。其生命周期由容器控制。
消息驱动bean实例没有特定于客户机的状态。然而,通过处理客户机信息,消息驱动bean实例的实例变量可以包含状态。这些状态的示例包括一个开放的数据库连接和一个EJB对象的对象引用。