在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中
@ JMSConnectionFactoryDefinition,@ JMSConnectionFactoryDefinitions
用于声明一个或多个连接工厂
@ 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资源相关推荐
- java ee jms_在Java EE 7中自动配置JMS资源
java ee jms JMS 2.0(Java EE 7平台的一部分)引入了许多不错的功能 . 其中之一是能够声明JMS资源以进行自动部署. Java EE 7之前的版本 使用@Resource注入 ...
- 在 Java EE 组件中使用 Camel Routes
2019独角兽企业重金招聘Python工程师标准>>> 摘要:你可以通过集成 Camel 和 WildFly 应用服务器(使用 WildFly-Camel 子系统)在 Java EE ...
- java ee jms_Java EE6事件:JMS的轻量级替代品
java ee jms 我今天要讨论的功能是Java EE 6中的事件机制.一般的想法是触发一个事件,并让事件监听器来接收它. 我创建了这个完全没有用的示例,但是它的简单性帮助我专注于重要的内容. 我 ...
- Java EE 7中包含哪些JSR?
我开始填写所有应该加入Java EE 7的Java规范请求的表. 由于平台版本仍在确定中,因此某些细节很难确定. 完整的Java EE 7 EJB产品具有以下标准组件和API: 名称 版 描述 JSR ...
- kibana 更新 索引模式_elasticsearch – 如何在kibana中自动配置索引模式
是否可以在kibana中自动配置索引模式?通过一些设置文件或者休息api.安装后,可以手动完成. Kibana 5.x公开了这样一个API来管理索引模式. 要创建索引模式,可以向kibana访问URL ...
- react api_使用Java EE 8中的React式API加速服务
react api 服务通常可以通过异步处理进行优化,即使不改变其对外界的行为. 某些服务效率不高的原因是,它们需要等待其他服务提供结果才能继续下去. 让我们看一下如何在不等待外部REST服务的情况下 ...
- 使用Java EE 8中的反应式API加速服务
服务通常可以通过异步处理进行优化,即使不改变其对外界的行为. 某些服务效率不高的原因是,它们需要等待其他服务提供结果才能继续下去. 让我们看一下如何在不等待外部REST服务的情况下调用它们,并独立进行 ...
- js ajax 访问java函数,将url分配给Java EE项目中的ajax(js)函数
我正在Ajax中尝试使用我的第一个项目,并且在分配指向要从服务器中获取的文件的绝对URL时遇到问题.将url分配给Java EE项目中的ajax(js)函数 这是我的函数: function fetc ...
- doc自动生成html,java web应用中自动生成文章html页面的实现.doc
java web应用中自动生成文章html页面的实现 java web应用中自动生成文章html页面的实现 2009-11-09 00:24:15 标签:web开发,页面转换 [推送到技术圈] 版权声 ...
最新文章
- Machine Learning for Encrypted Malware Traffic Classification
- @程序员:Java平均工资再次上涨,光张年限不涨薪的我慌了!
- HDU 2000 ASCII码排序
- C++常量指针this
- J-Link该如何升级固件?
- 超级智能玩具《小小机器人》|全新50种玩法,创造力之源
- python dag调度系统开发_基于DAG的分布式任务调度平台-Maat
- find_package()的查找*.cmake的顺序
- JAVA进制的表示方式
- 程序员面试金典——7.2碰撞的蚂蚁
- JavaWeb网络考试系统
- Java实现Unicode和中文相互转换
- 小白跑WRF第五天,安装WPS和静态地理数据
- 计算机键盘快速指南,正确方法:[字母键盘练习方法指南]教您如何快速键入
- 大厂面试题之计算机网络重点篇 (附答案)
- 全基因DNA甲基化检测“金标准”--- 改进版简化基因组甲基化测序
- Discuz 服务器重启后无法访问
- 怎么利用支付宝当面付实现手机网站支付
- 动态网站要怎么通过CDN实现加速?
- PreScan交通流车流插件(ITM)- Intelligent Traffic Module Plugin与matlab(simlink)联合仿真使用实例
热门文章
- vue调用methods里的方法
- 详细整理分层开发步骤!
- Map的两种遍历方法
- 图的深度优先遍历+图解
- 2的负x次幂图像_数学| NO.2,3 函数 T15
- 虚拟机安装centeros7 无法连接网络 virsh命令找不到 删除多余的vir0 不然dubbo会有问题
- android 新的布局,Android新布局方式ConstraintLayout快速入门教程
- spring boot 单元测试_spring-boot-plus1.2.0-RELEASE发布-快速打包-极速部署-在线演示
- element js 包含字符_selenium3.x(10)js弹框处理
- Servlet其他关联类---ServletConfig类