![](/img/trans.png)
[英]Annotate StatelessBean with @Depends to HornetQ-JMS Queue
[英]JMS and HornetQ
JMS是Java消息传递“ API”,对我来说仍然不清楚像HornetQ这样的第三方API到底做什么? 没有任何默认/引用实现?
JMS只是一个规范,您可以选择任何喜欢的实现:
除了规范外,每个人还将提供不同的功能。
例如,HornetQ提供确认确认(因此,您无需阻止等待确认的发送,而可以将高级技术用于异步操作,例如异步servlet)。
HornetQ还提供大消息。
HornetQ也提供了核心API,您无需JMS就可以使用它。
例如,我知道如果您不想使用JMS,也可以使用IBM的API。
因此,在摘要Java消息服务-JMS中,JMS只是一组Java接口,您必须选择适当的实现。
我认为您正在混合一些概念。 如您所说,JMS是一个API(如果您愿意,也可以是一个规范)。 简化的JMS定义了一组接口,某些供应商必须实现这些接口。 在您的情况下,您正在使用JBoss HornetQ。 但是,还有其他实现,例如Apache ActiveMQ和其他实现。 因此,如果您愿意或需求有变,您可以交换实现。
实现JMS API的提供程序可能包括其他功能。 但是这些是专有的,不在JMS规范中。 因此,也许复制包含在一个提供程序中,而另一个则不提供这种功能。
可以在JDBC中找到另一个示例。 JDBC本身是API,但是对于不同的数据库存在不同的实现。 与JPA相同,其中Hibernate和Toplink是主要示例。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.