欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

activemq实验 博客分类: 综合 ActiveMQBeanJMSSpringXML 

程序员文章站 2024-03-19 20:35:22
...

实验环境:activemq4.1.1/spring1.2.8

思路:使用spring的jmsTemplate来封装jms的具体操作,使用SimpleMessageConverter把string和object转换成message

spring配置: 

xml 代码
  1. <beans>  
  2.     <bean id="jmsConnectionFactory" class="org.apache.activemq.ActiveMQConnectionFactory">  
  3.         <property name="brokerURL" value="tcp://localhost:61616"/>
  4.     </bean>  
  5.        
  6.     <bean id="messageConverter" class="org.springframework.jms.support.converter.SimpleMessageConverter"/>  
  7.        
  8.     <bean id="jmsTemplate" class="org.springframework.jms.core.JmsTemplate">  
  9.         <property name="connectionFactory">  
  10.             <bean class="org.springframework.jms.connection.SingleConnectionFactory">  
  11.                 <property name="targetConnectionFactory" ref="jmsConnectionFactory"/>  
  12.             </bean>  
  13.         </property>  
  14.         <property name="defaultDestinationName" value="TEST.FOO"/>  
  15.         <property name="pubSubDomain" value="false"/>  
  16.         <property name="deliveryMode" value="2"/>  
  17.         <property name="messageConverter" ref="messageConverter"/>  
  18.     </bean>  
  19.        
  20.     <bean id="messageProducter" class="jms.MessageProducter">  
  21.         <property name="jmsTemplate" ref="jmsTemplate"/>  
  22.     </bean>  
  23. </beans>  

代码:

java 代码
  1. public class MessageProducter {   
  2.     private JmsTemplate jmsTemplate;   
  3.     private int messageSize = 255;   
  4.        
  5.     public void sendMessage(){   
  6.         for(int i=5;i<10;i++){   
  7.             jmsTemplate.convertAndSend(createMessageText(i));   
  8.         }   
  9.     }   
  10.        
  11.     private String createMessageText(int index) {   
  12.         StringBuffer buffer = new StringBuffer(messageSize);   
  13.         buffer.append("Message: " + index + " sent at: " + new Date());   
  14.         if (buffer.length() > messageSize) {   
  15.             return buffer.substring(0, messageSize);   
  16.         }   
  17.         for (int i = buffer.length(); i < messageSize; i++) {   
  18.             buffer.append(' ');   
  19.         }   
  20.         return buffer.toString();   
  21.     }   
  22.        
  23.     public void setJmsTemplate(JmsTemplate jmsTemplate) {   
  24.         this.jmsTemplate = jmsTemplate;   
  25.     }   
  26.   
  27.     public static void main(String[] args){   
  28.         ApplicationContext context = new ClassPathXmlApplicationContext("jms/spring*.xml");   
  29.         MessageProducter producter = (MessageProducter) context.getBean("messageProducter");   
  30.         producter.sendMessage();   
  31.         ((AbstractApplicationContext) context).close();   
  32.     }   
  33. }