在Java EE 7中自动配置JMS资源
生活随笔
收集整理的這篇文章主要介紹了
在Java EE 7中自动配置JMS资源
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
JMS 2.0(Java EE 7平臺的一部分)引入了許多不錯的功能 。 其中之一是能夠聲明JMS資源以進行自動部署。
Java EE 7之前的版本
- 使用@Resource注入連接工廠
- 使用@Resource查找目標位置(隊列/主題)
- 拉出Session對象并使用它創建Message,Message Producer并發送消息
最重要的是,您必須確保預先在應用程序服務器中配置了資源(即連接工廠和物理目標)
在Java EE 7時代……。
您可以利用JMS 2.0好東西
- 使用注入的JMS上下文(在大多數情況下)以更少的樣板代碼簡化發送過程
- 最重要的是,您可以使用注釋或部署描述符以聲明方式配置JMS資源的自動配置
讓我們看看實際使用的新JMS 2.0批注。 您還可以在Github上拾取此Maven項目,并將其部署到您喜歡的IDE中
@ JMSConnectionFactoryDe??finition,@ JMSConnectionFactoryDe??finitions
用于聲明一個或多個連接工廠
@ JMSDestinationDefinition,@ JMSDestinationDefinitions
用于聲明一個或多個物理目標(隊列或主題)
@Stateless @JMSConnectionFactoryDefinition(name = "java:comp/env/AutoDeloyedJMSConf") @JMSDestinationDefinition(interfaceName = "javax.jms.Queue", name = "java:comp/env/AutoDeloyedJMSQueue") public class Service {//usage omitted... }@JMSConnectionFactoryDefinitions({@JMSConnectionFactoryDefinition(name="java:comp/env/AutoDeloyedJMSConf1"),@JMSConnectionFactoryDefinition(name="java:comp/env/AutoDeloyedJMSConf2") }) @JMSDestinationDefinitions({@JMSDestinationDefinition(name="java:comp/env/AutoDeloyedJMSQueue1",interfaceName = "javax.jms.Queue",),@JMSDestinationDefinition(name="java:comp/env/AutoDeloyedJMSQueue2",interfaceName = "javax.jms.Queue",) }) @Stateless public class AnotherService {//usage omitted... }哦,您也可以使用XML
//snippet only..<jms-connection-factory><name>java:comp/env/AutoDeloyedJMSConf3</name> </jms-connection-factory><jms-destination><name>java:comp/env/AutoDeloyedJMSQueue3</name><interfaceName>javax.jms.Queue</interfaceName> </jms-destination>這些可以是Web部署描述符(web.xml)或EJB部署描述符(ejb-jar.xml)的一部分。
可能的變化
有幾種使用此功能的方法
- 使用@Startup支持的@Singleton EJB聲明JMS資源
- 您也可以為此在Servlet或任何CDI托管的bean上聲明它
這一切有什么意義?
容器/ Java EE應用程序服務器確保JMS工件可按需提供給您的應用程序邏輯
- 在PaaS,微服務,Docker化的以及任何其他大量利用自動化部署的環境中,它非常有價值
- 適用于自動化測試
- 這是值得考慮和配置的少一件事!
額外資源
- JMS 2.0 規范文檔
- 他們也有一個Twitter帳戶 !
- 有關 Java EE一切的水族館博客
干杯!
翻譯自: https://www.javacodegeeks.com/2015/11/automated-provisioning-jms-resources-java-ee-7.html
總結
以上是生活随笔為你收集整理的在Java EE 7中自动配置JMS资源的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: akka es/cqrs_在Akka中实
- 下一篇: java 7.函数-递归_带有谓词的Ja