上回说到menifest.mf,这回说几个重头的。从轻的说起:
1、ibatis,这个最轻,几乎不用说什么,只是按照上篇的方法,在runtime中把需要的jar加进去就成了,下图就是例子:
datasource.xml配置如下:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE sqlMapConfig PUBLIC "-//iBATIS.com//DTD SQL Map Config 2.0//EN"
"http://ibatis.apache.org/dtd/sql-map-config-2.dtd">
<sqlMapConfig>
<sqlMap resource="mysqlmap.xml" />
</sqlMapConfig>
spring config配置:
<?xml version="1.0" encoding="UTF-8"?>
<beans
xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:osgi="http://www.springframework.org/schema/osgi"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd http://www.springframework.org/schema/osgi http://www.springframework.org/schema/osgi/spring-osgi.xsd">
<bean id="mysqlPersistance" class="com.monitor.bundle.persistance.mysql.MySqlPersistanceImpl">
<property name="dataSource" ref="datasource" />
<property name="sqlMapClient" ref="sqlMapClient" />
</bean>
<bean id="datasource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
<property name="driverClassName" value="com.mysql.jdbc.Driver" />
<property name="url" value="jdbc:mysql://localhost/monitor?characterEncoding=GB2312" />
<property name="username" value="user" />
<property name="password" value="XXX" />
</bean>
<bean id="sqlMapClient" class="org.springframework.orm.ibatis.SqlMapClientFactoryBean">
<property name="configLocation" value="classpath:datasourceconfig.xml" />
</bean>
<osgi:service id="mysqlPersistanceService" interface="com.monitor.bundle.interfaces.PersistanceIF" ref="mysqlPersistance" />
</beans>
不过这点我倒是有个疑问:以前我是将连接池什么都写在datasource.xml中的,自己创建SqlMapClient,自打老四来了,就把datasource.xml简化了,都在spring中配置了,而且连接池也是在spring配置。
和老四争论未果,也不知道到底哪个好?
2、再说timer,可喜的是,Spring DM和timer基本上是两码事,这使得这两个东西可以在一起调用,如下:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:osgi="http://www.springframework.org/schema/osgi"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd http://www.springframework.org/schema/osgi http://www.springframework.org/schema/osgi/spring-osgi.xsd">
<bean id="timer" class="com.zeromonitor.bundle.timer.TimerController">
<property name="probe">
<osgi:reference interface="com.zeromonitor.bundle.interfaces.ProbeIF" />
</property>
</bean>
<bean id="scheduledTask" class="org.springframework.scheduling.timer.ScheduledTimerTask">
<property name="timerTask" ref="timer" />
<property name="delay" value="0" />
<property name="period" value="10000" />
</bean>
<bean class="org.springframework.scheduling.timer.TimerFactoryBean">
<property name="scheduledTimerTasks">
<list>
<ref bean="scheduledTask"/>
</list>
</property>
</bean>
</beans>
3、最后剩下的就是麻烦的active mq了,以前用他的时候,特好用:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:amq="http://activemq.apache.org/schema/core"
xmlns:jms="http://www.springframework.org/schema/jms"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
http://activemq.apache.org/schema/core http://activemq.apache.org/schema/core/activemq-core.xsd
http://www.springframework.org/schema/jms http://www.springframework.org/schema/jms/spring-jms-2.5.xsd">
<!-- lets create an embedded ActiveMQ Broker -->
<amq:broker useJmx="false" persistent="false">
<amq:transportConnectors>
<amq:transportConnector uri="tcp://localhost:61234"/>
</amq:transportConnectors>
</amq:broker>
<!-- JMS ConnectionFactory to use, configuring the embedded broker using XML -->
<amq:connectionFactory id="jmsFactory" brokerURL="tcp://localhost:61234"/>
<!-- a sample POJO consumer -->
<bean id="receiver" class="activemq.SpringReceiver"/>
<jms:listener-container connection-factory="jmsFactory" destination-type="queue" concurrency="10" >
<!-- 这里的destination是 physicalName -->
<jms:listener destination="org.apache.activemq.command.ActiveMQQueue" ref="receiver" method="onMessage"/>
</jms:listener-container>
</beans>
用amp和jms的namespace就都搞定了,又能自动起amq,又能监听。
但是用Spring DM以后一切都完蛋了!
如果按照如上的配置,报一个不能refresh的错误(具体的忘了),查了springsource的jira以后,发现这个问题是无法解决的,原因是:broker和监听随着spring一起来,就不能更改了,你DM一会儿start,一会儿uninstall的,没法儿正确创建服务和监听。
所以,现在闹得我们自己编代码监听,而且在程序外部起amp。
谁要知道怎么解决,一定赐教一把啊
- 大小: 18.5 KB
分享到:
相关推荐
在提供的“一头扎进JMS之ActiveMQ视频教程”中,你将学习如何配置和使用ActiveMQ,包括安装和启动服务、创建和管理消息队列、使用生产者和消费者发送与接收消息、理解不同消息模式的工作原理,以及如何利用ActiveMQ...
**ActiveMQ 概述** ActiveMQ 是 Apache 开源组织提供的一款高效、强大的消息...通过这个“MQ之ActiveMQ思维导图”,读者可以系统地理解和掌握 ActiveMQ 的核心功能和应用场景,进一步提升在消息队列领域的专业技能。
自己做的尚硅谷周阳老师ActiveMQ课程脑图,其中自己所用做案例的环境搭建都是基于docker与老师课程不一样。脑图内容涵盖视频的99%的笔记,含有自己编写的代码文件,外加了自己对一些问题的测试与回答。 消息中间件...
这篇博客"jms之activeMQ 队列和广播模式例子"主要面向初学者,旨在提供ActiveMQ入门级的知识,通过实例解释队列(Queue)和主题(Topic)这两种基本的消息模式。 首先,我们要理解JMS中的队列和主题的区别。队列...
2. 高性能和可扩展性:ActiveMQ采用了高效的存储机制和网络协议,能够处理大量并发连接和高频率的消息交换。通过集群和负载均衡,可以轻松扩展以满足不断增长的需求。 3. 路由和过滤:ActiveMQ提供丰富的消息路由和...
4. **JMS 1.1及J2EE规范支持**:ActiveMQ完全符合JMS 1.1和J2EE 1.4规范,包括持久化、分布式事务消息和事务处理等功能。 5. **与Spring框架的集成**:通过Spring的配置文件,可以轻松将ActiveMQ嵌入到Spring应用中...
ActiveMQ是中国最流行的开源消息中间件之一,由Apache软件基金会开发。它基于Java Message Service (JMS) 规范,提供了可靠的消息传递功能,适用于分布式系统中的应用间通信。本压缩包“activeMQ收发工具.rar”包含...
在Linux环境下,Apache ActiveMQ是一个广泛使用的开源消息代理和队列服务器,它是Java Message Service (JMS) 的实现,能够处理大量的并发消息传递。ActiveMQ提供了高可用性、可扩展性和稳定性,使得它成为分布式...
ActiveMQ是中国最流行的开源消息中间件之一,基于Java Message Service(JMS)规范,它提供了一个高可伸缩、高性能、稳定且灵活的消息传递平台。这个"ActiveMQ接受和发送工具.rar"压缩包包含了用于与ActiveMQ交互的...
ActiveMQ是Apache软件基金会开发的一款开源消息中间件,它遵循开放消息传递协议(Open Message Broker Protocol,即AMQP)和Java消息服务(Java Message Service,JMS)规范,广泛应用于分布式系统中的异步通信和...
2. **高性能**:ActiveMQ采用了高效的缓存策略和内存管理,确保高吞吐量和低延迟。 3. **高可用性**:通过集群和故障转移功能,ActiveMQ可以提供高可用的服务,确保消息不会丢失。 4. **多种协议支持**:除了JMS,...
ActiveMQ可以作为消息中间件用于异步通信场景,例如消息队列(Queue)和发布/订阅模型(Pub/Sub),这些特性使其在分布式系统中得到广泛应用。 #### 二、安装步骤 ##### 1. 环境准备 - **操作系统**:CentOS 6.6 ...
ActiveMQ支持多种协议,如OpenWire、AMQP、STOMP、XMPP和MQTT,使得不同平台和语言的应用能够轻松地集成。ActiveMQ还提供了一些高级特性,如事务、持久化、消息优先级和消息组。 **ActiveMQ与Tomcat整合** Tomcat...
在Windows系统上搭建ActiveMQ集群是一项关键的任务,它涉及到分布式消息传递系统的设计和优化。ActiveMQ是Apache软件基金会开发的一款开源消息代理,它遵循Java Message Service (JMS) 规范,提供高可靠的消息传递...
包括1、ActiveMQ java实例 2、ActiveMQ Spring结合实例 3、代码亲测,无问题。 4、资源分5分绝对值 注意:请先安装ActiveMQ 服务。
本报告详细阐述了使用JMeter对ActiveMQ进行性能测试的过程和结果,旨在评估ActiveMQ在JMS(Java消息服务)环境下的性能表现。JMeter作为一个强大的负载和性能测试工具,被广泛用于测试各种应用程序,包括消息中间件...
在“activemqactivemq”这个主题下,我们主要关注如何使用ActiveMQ进行消息的接收和发送。 首先,我们需要了解ActiveMQ的基本概念。消息中间件(Message Broker)如ActiveMQ,扮演着应用间通信的桥梁角色,允许应用...
同时,熟悉JMS(Java Message Service)规范也是必不可少的,因为ActiveMQ是基于JMS接口进行通信的。了解了这些基础知识后,可以根据项目需求选择合适的连接池实现,并正确配置和使用。 文件zc-activemq可能是包含...
Apache ActiveMQ 是一个开源的消息中间件,它实现了多种消息协议,如JMS(Java Message Service)和AMQP(Advanced Message Queuing Protocol),并且广泛应用于分布式系统中,提供可靠的消息传递和队列管理。...