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上声明它
@Singleton
@Startup
@JMSDestinationDefinition(interfaceName = "javax.jms.Queue", name  = "java:comp/env/EmailQueue")
public class EmailQueueAutoProvisionService {@PostConstructpublic void confirm(){System.out.println("Email Queue configured");}
}

这一切有什么意义?

容器/ 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资源相关推荐

  1. java ee jms_在Java EE 7中自动配置JMS资源

    java ee jms JMS 2.0(Java EE 7平台的一部分)引入了许多不错的功能 . 其中之一是能够声明JMS资源以进行自动部署. Java EE 7之前的版本 使用@Resource注入 ...

  2. 在 Java EE 组件中使用 Camel Routes

    2019独角兽企业重金招聘Python工程师标准>>> 摘要:你可以通过集成 Camel 和 WildFly 应用服务器(使用 WildFly-Camel 子系统)在 Java EE ...

  3. java ee jms_Java EE6事件:JMS的轻量级替代品

    java ee jms 我今天要讨论的功能是Java EE 6中的事件机制.一般的想法是触发一个事件,并让事件监听器来接收它. 我创建了这个完全没有用的示例,但是它的简单性帮助我专注于重要的内容. 我 ...

  4. Java EE 7中包含哪些JSR?

    我开始填写所有应该加入Java EE 7的Java规范请求的表. 由于平台版本仍在确定中,因此某些细节很难确定. 完整的Java EE 7 EJB产品具有以下标准组件和API: 名称 版 描述 JSR ...

  5. kibana 更新 索引模式_elasticsearch – 如何在kibana中自动配置索引模式

    是否可以在kibana中自动配置索引模式?通过一些设置文件或者休息api.安装后,可以手动完成. Kibana 5.x公开了这样一个API来管理索引模式. 要创建索引模式,可以向kibana访问URL ...

  6. react api_使用Java EE 8中的React式API加速服务

    react api 服务通常可以通过异步处理进行优化,即使不改变其对外界的行为. 某些服务效率不高的原因是,它们需要等待其他服务提供结果才能继续下去. 让我们看一下如何在不等待外部REST服务的情况下 ...

  7. 使用Java EE 8中的反应式API加速服务

    服务通常可以通过异步处理进行优化,即使不改变其对外界的行为. 某些服务效率不高的原因是,它们需要等待其他服务提供结果才能继续下去. 让我们看一下如何在不等待外部REST服务的情况下调用它们,并独立进行 ...

  8. js ajax 访问java函数,将url分配给Java EE项目中的ajax(js)函数

    我正在Ajax中尝试使用我的第一个项目,并且在分配指向要从服务器中获取的文件的绝对URL时遇到问题.将url分配给Java EE项目中的ajax(js)函数 这是我的函数: function fetc ...

  9. doc自动生成html,java web应用中自动生成文章html页面的实现.doc

    java web应用中自动生成文章html页面的实现 java web应用中自动生成文章html页面的实现 2009-11-09 00:24:15 标签:web开发,页面转换 [推送到技术圈] 版权声 ...

最新文章

  1. Machine Learning for Encrypted Malware Traffic Classification
  2. @程序员:Java平均工资再次上涨,光张年限不涨薪的我慌了!
  3. HDU 2000 ASCII码排序
  4. C++常量指针this
  5. J-Link该如何升级固件?
  6. 超级智能玩具《小小机器人》|全新50种玩法,创造力之源
  7. python dag调度系统开发_基于DAG的分布式任务调度平台-Maat
  8. find_package()的查找*.cmake的顺序
  9. JAVA进制的表示方式
  10. 程序员面试金典——7.2碰撞的蚂蚁
  11. JavaWeb网络考试系统
  12. Java实现Unicode和中文相互转换
  13. 小白跑WRF第五天,安装WPS和静态地理数据
  14. 计算机键盘快速指南,正确方法:[字母键盘练习方法指南]教您如何快速键入
  15. 大厂面试题之计算机网络重点篇 (附答案)
  16. 全基因DNA甲基化检测“金标准”--- 改进版简化基因组甲基化测序
  17. Discuz 服务器重启后无法访问
  18. 怎么利用支付宝当面付实现手机网站支付
  19. 动态网站要怎么通过CDN实现加速?
  20. PreScan交通流车流插件(ITM)- Intelligent Traffic Module Plugin与matlab(simlink)联合仿真使用实例

热门文章

  1. vue调用methods里的方法
  2. 详细整理分层开发步骤!
  3. Map的两种遍历方法
  4. 图的深度优先遍历+图解
  5. 2的负x次幂图像_数学| NO.2,3 函数 T15
  6. 虚拟机安装centeros7 无法连接网络 virsh命令找不到 删除多余的vir0 不然dubbo会有问题
  7. android 新的布局,Android新布局方式ConstraintLayout快速入门教程
  8. spring boot 单元测试_spring-boot-plus1.2.0-RELEASE发布-快速打包-极速部署-在线演示
  9. element js 包含字符_selenium3.x(10)js弹框处理
  10. Servlet其他关联类---ServletConfig类