spring + jms

来源:互联网 发布:java导出excel插件 编辑:程序博客网 时间:2024/04/23 15:22
package jms.activemq.myexample.spring;
import java.util.Date;
import javax.jms.JMSException;
import javax.jms.Message;
import javax.jms.Session;
import javax.jms.TextMessage;
import org.springframework.jms.core.MessageCreator;
public class MyMessageCreator implementsMessageCreator {
    /**
     * 消息序号
     */
    privateint msgNo;
    publicMyMessageCreator(intno) {
        this.msgNo = no;
    }
    @Override
    publicMessage createMessage(Session session) throwsJMSException {
        TextMessage textMsg = session.createTextMessage();
        textMsg.setText(newDate() + "第" + this.msgNo + "条消息发出");
        return textMsg;
    }
}
?
package jms.activemq.myexample.spring;
import javax.jms.*;
/**
* Text消息监听
*
* @author xiaochuanyu
*
*/
public class TextListener implementsMessageListener {
    /**
     * Casts the message to a TextMessage and displays its text.
     *
     * @param message
     *            the incoming message
     */
    publicvoid onMessage(Message message) {
        TextMessage msg = null;
        try {
            if (message instanceofTextMessage) {
               msg = (TextMessage) message;
               System.out.println("Reading message: "+ msg.getText());
            } else {
               System.out.println("Message of wrong type: "
                       + message.getClass().getName());
            }
        } catch (JMSException e) {
            System.out.println("JMSException in onMessage(): "+ e.toString());
        } catch (Throwable t) {
            System.out.println("Exception in onMessage():"+ t.getMessage());
        }
    }
}
?
package jms.activemq.myexample.spring;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class SpringJmsTestMain {
    publicstatic void main(String[] args) throws InterruptedException {
        ApplicationContext context =new ClassPathXmlApplicationContext(
               new String[] { "SpringJms/SpringJms.xml" });
        SpringPublisher publisher = (SpringPublisher) context
               .getBean("springPublisher");
        publisher.start();
    }
}
复制代码
<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" 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-2.0.xsd"> <!-- jms 连接工厂 --> <bean id="jmsFactory" class="org.apache.activemq.ActiveMQConnectionFactory"> <property name="brokerURL"> <value>tcp://localhost:61616</value> </property> </bean> <!-- jms 连接池 --> <!-- <bean id="pooledJmsFactory" class="org.apache.activemq.pool.PooledConnectionFactory"> <property name="connectionFactory"> <ref local="jmsFactory" /> </property> </bean> --> <!-- jms Topic --> <bean id="myTopic" class="org.apache.activemq.command.ActiveMQTopic" autowire="constructor"> <constructor-arg value="STOCKS.JAVA" /> </bean> <!-- 消息监听器 --> <bean id="myTextListener" class="jms.activemq.myexample.spring.TextListener"> </bean> <!-- jms Consumer --> <bean id="javaConsumer" class="org.springframework.jms.listener.DefaultMessageListenerContainer"> <property name="connectionFactory" ref="jmsFactory" /> <property name="destination" ref="myTopic" /> <property name="messageListener" ref="myTextListener" /> </bean> <!-- jms 模板 --> <bean id="jmsTemplate" class="org.springframework.jms.core.JmsTemplate"> <property name="connectionFactory"> <ref local="jmsFactory" /> </property> </bean> <!-- 消息发布器 --> <bean id="springPublisher" class="jms.activemq.myexample.spring.SpringPublisher"> <property name="template"> <ref local="jmsTemplate" /> </property> <property name="topic"> <ref local="myTopic" /> </property> </bean></beans>
复制代码
原创粉丝点击