`

bbossgroups jms组件框架

阅读更多

 bbossgroups jms组件框架

bboss aop框架的jms组件提供针对jms规范的一组简单的操作接口,可一通过 JMSTemplate组件来实现JMS消息的接收和发送功能。

系统中提供了两个JMS Template实现:
org.frameworkset.mq.JMSTemplate—提供所有的jms接收和发送接口,不带主题订阅功能接口
org.frameworkset.mq.JMSReceiveTemplate-提供所有的jms接收和发送接口,带主题订阅功能接口

下面是举一些简单的例子,说明这连个模板类的使用方法。
系统中可以方便地通过扩展连接工程管理抽象类
org.frameworkset.mq.JMSConnectionFactory来实现不同的jms服务提供商的jms服务器的支持。开发人员只需要实现JMSConnectionFactory的抽象方法:

   /**
     * 构建特定提供商的连接工厂
     *
     * @return
     */

public abstract ConnectionFactory buildConnectionFactory() throws Exception;

bboss aop框架中的jms组件提供了对apache activemq server的实现:
org.frameworkset.mq. AMQConnectionFactory

本章都是以apache activemq server为例来说明jms组件的基本接口。
由于篇幅问题,省略相关配置的介绍,感兴趣的朋友可以到以下地址下载详细的文档介绍:
http://sourceforge.net/projects/bboss/files/bbossgroups-1.0/bbossgroups%20document.zip/download
其中aop框架技术白皮书中有bboss jms组件的详细介绍,这里只列出一些测试用例。

测试用例
1.2.1   从连接池工厂中获取jms connection
下面的代码从连接池工厂中获取jms connection对象,先后获取两次验证连接池是否生效。
JMSConnectionFactory factory = (JMSConnectionFactory)BaseSPIManager.getBeanObject("test.amq.PooledConnectionFactory");

        try

        {

            Connection connection = factory.getConnection();

            connection.start();
            connection.close();
            connection = factory.getConnection();
            connection.start();    
connection.close();    
        }
        catch (JMSException e)
        {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

 
1.2.2   从连接工厂中获取jms connection

从连接工厂中获取jms connection,每次都会创建新的jms connection
JMSConnectionFactory factory = (JMSConnectionFactory)BaseSPIManager.getBeanObject("test.amq.ConnectionFactory");
        try
        {
            Connection connection = factory.getConnection();
            connection.start();
            connection.close();
            connection = factory.getConnection();
            connection.start();          
        }
        catch (JMSException e)
        {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
1.2.3   向队列atest中发送消息

JMSTemplate template = (JMSTemplate)BaseSPIManager.getBeanObject("test.jmstemplate");
        try
        {
            template.send("atest", "ahello");
        }
        catch (JMSException e)
        {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        finally
        {
            template.stop();
        }
1.2.4   向队列atest发送持久化的消息

JMSTemplate template = (JMSTemplate)BaseSPIManager.getBeanObject("test.jmstemplate");
        try
        {
            template.send("atest", "phello",true);
        }
        catch (JMSException e)
        {
            e.printStackTrace();
        }
        finally
        {
            template.stop();
        }

 
1.2.5   向队列atest中发送持久化消息,指定优先级和过期时间
JMSTemplate template = (JMSTemplate)BaseSPIManager.getBeanObject("test.jmstemplate");
        try
        {
            template.send("atest", "allhello",true,4,10000);
        }
        catch (JMSException e)
        {
            e.printStackTrace();
        }
        finally
        {
            template.stop();
        }
1.2.6   从队列atest中同步接收消息

JMSTemplate template = (JMSTemplate)BaseSPIManager.getBeanObject("test.jmstemplate");
        try
        {
            Message msg = template.receive("atest");
            System.out.println("testReceiveMessage:"+ msg);
        }
        catch (JMSException e)
        {
            e.printStackTrace();
        }
        finally
        {
            template.stop();
        }

 
1.2.7   从队列atest中异步接收消息
利用test.jms.receive.template模板从队列atest中异步接收消息。
JMSReceiveTemplate template = (JMSReceiveTemplate)BaseSPIManager.getBeanObject("test.jms.receive.template");
        try
        {
            template.setMessageListener("atest",new MessageListener() {
                public void onMessage(Message arg0)
                {
                    System.out.println("msg comming:"+arg0);
                }              
            });
        }
        catch (Exception e)
        {
            template.stop();
        }
        finally
        {
        }

 
1.2.8   向主题getsubtest发送消息

JMSTemplate template = (JMSTemplate)BaseSPIManager.getBeanObject("test.jmstemplate");
        try
        {
            template.send("topic://getsubtest", "getsubtest");
        }
        catch (JMSException e)
        {
            e.printStackTrace();
        }
        finally
        {
            template.stop();
        }

 
1.2.9   从主题订阅消息

JMSReceiveTemplate template = (JMSReceiveTemplate)BaseSPIManager.getBeanObject("test.topic.receive.jmstemplate");
        try
        {
            template.getTopicSubscriber("getsubtest", "subscribename").setMessageListener(new MessageListener() {
                public void onMessage(Message arg0)
                {
                    System.out.println("topic msg comming:"+arg0);
                }              
            });
        }
        catch (Exception e)
        {
            template.stop();
        }
        finally
        {
        }

 
1.2.10 从主题退订消息

JMSReceiveTemplate template = (JMSReceiveTemplate)BaseSPIManager.getBeanObject("test.topic.receive.jmstemplate");
            try
            {
                template.unsubscribe("subscribename");
            }
            catch (Exception e)
            {
                template.stop();
            }
            finally
            {
            }

注意事项:使用主题发布和订阅消息时,不要使用连接池连接工厂。

分享到:
评论

相关推荐

    bbossgroups 3.1SQLExecutor组件ap使用实例

    在Java开发中,bbossgroups 3.1框架提供了一个名为SQLExecutor的组件,用于简化数据库操作。这个组件提供了一种高效的批处理和单条SQL执行的方式,它基于Apache License 2.0开源,允许开发者在遵守相应条款的情况下...

    bbossgroups 开发系列文章之一 最佳实践

    本文将深入讲解bbossgroups开发系列文章之一中的最佳实践,涉及bboss MVC框架的基础配置、控制器、数据库访问、DAO组件、业务组件管理以及与前端的交互等方面。 首先,我们来了解bboss MVC框架的基础配置。bboss-...

    bbossgroups 3.1培训教程.ppt

    在企业J2EE项目开发中,bbossgroups框架扮演着重要角色,它不仅包含了AOP/IoC、MVC、Persistent、Taglib等核心组件,还集成了分布式RPC服务、分布式事件框架,为开发者提供了全方位的开发支持。 ### 核心组件 - **...

    Bbossgroups体系架构.ppt

    11. **其他组件**:如ClassLoader自定义、数据校验Demo、配置结构、示例控制器、模型绑定、国际化配置、主题配置、视图案例等,都是Bbossgroups体系中的重要组成部分,它们共同构成了一个强大而全面的开发框架。...

    bbossgroups 3.0 培训教程

    提供的PPT教程是学习bbossgroups 3.0的宝贵资源,它可能包含了框架的概述、安装指南、核心组件的详细讲解、示例代码以及常见问题解答等内容。通过逐页学习并结合实际编程实践,你可以快速掌握bbossgroups的使用技巧...

    bbossgroups 3.0 发布,国内首款集

    ### bbossgroups 3.0 发布,国内首款集成多技术的企业级J2EE开发框架 #### 概述 近日,bbossgroups 3.0 正式发布,这款国内首款集AOP(面向切面编程)、MVC(模型-视图-控制器)、Persistent(持久化)、JSP ...

    企业级J2EE开源框架bboss

    BBoss(全称为bbossgroups)是一个专为企业级J2EE应用设计的开源框架,它为Java开发者提供了一系列强大的工具和服务,以简化Web应用程序的开发过程。该框架旨在提高开发效率,降低维护成本,同时保持高度的灵活性和...

    2013年度中国优秀开源项目列表

    12. bboss:bbossgroups是首个集成AOP、MVC、持久层、JSP标签库、分布式RPC服务和序列化组件的JavaEE企业级开发框架。 13. BeeFramework:BeeFramework是iOS平台的快速开发框架,特点包括易学易用、组件丰富,提供...

    bboss mvc 通过jsonp实现跨站跨域远程访问

    提供的压缩包文件"bbossgroups 框架培训教程.pptx"和"Bbossgroups演示文档.pptx"可能包含了更多关于bboss mvc框架的详细信息和使用示例,包括如何配置和使用JSONP等特性。建议查阅这些文档以获取更深入的理解。 总...

    基于Java和Shell的bboss session framework跨域集群节点会话共享与监控设计源码

    该框架包含222个文件,包括164个Java源文件、14个XML配置文件、6个Gradle构建文件、6个JAR包文件、6个属性文件等,旨在支持跨域应用集群节点的会话共享与监控,并提供示例站点http://session.bbossgroups.com/...

    bboss-elastic-tran:bboss 数据同步工具

    弹性Tran老板数据交换模块使用文档: : Bboss是一个很好的Elasticsearch Java Rest客户端。 它运行并访问像mybatis这样的... 首先将BBoss的maven依赖项添加到pom.xml中: < dependency> < groupId>com.bbossgroups.p

    java版地图源码-bboss-elasticsearch:最好的elasticsearch高级javarest客户端api-----bbos

    java版地图源码弹性搜索Bboss Bboss 是一个很好的 elasticsearch Java rest 客户端。 它以类似于mybatis的方式操作和访问elasticsearch。 环保要求 JDK 要求:JDK 1.7+ Elasticsearch ...>com.bbossgroups.p

Global site tag (gtag.js) - Google Analytics