Spring+ActiveMq集成

1.Maven坐标

<dependency>
       <groupId>org.springframework</groupId>
         <artifactId>spring-jms</artifactId>
         <version>5.1.5.RELEASE</version>
         <scope>compile</scope>
     </dependency>
     <dependency>
         <groupId>org.apache.activemq</groupId>
         <artifactId>activemq-client</artifactId>
         <version>5.15.8</version>
         <scope>compile</scope>
     </dependency>

2.xml文件

<bean id="connectionFactory" class="org.apache.activemq.ActiveMQConnectionFactory">
        <property name="brokerURL">
            <value>tcp://127.0.0.1:61616</value>
        </property>
    </bean>

    <bean id="jmsMessagingTemplate" class="org.springframework.jms.core.JmsMessagingTemplate">
        <property name="connectionFactory">
            <ref bean="connectionFactory"/>
        </property>
    </bean>

    <bean id="destination" class="org.apache.activemq.command.ActiveMQQueue">
        <constructor-arg index="0">
            <value>spring_and_activemq</value>
        </constructor-arg>
    </bean>

3. 注解注入

@Autowired
    private JmsMessagingTemplate jmsMessagingTemplate;

4.Queue模式

// 建立生产者
    Queue queue = new ActiveMQQueue("监听名");
    try {
        MapMessage mapMessage = new ActiveMQMapMessage();
        mapMessage.setString(key,value);
        // 存入mq
        jmsMessagingTemplate.convertAndSend(queue, mapMessage);
    } catch (JMSException e) {
        e.printStackTrace();
    }

	// 消费者
    @JmsListener(destination = "监听名")
    public void receiveQueue(Message message) {
        try {
            MapMessage mapMessage = (MapMessage) message;
            String value = mapMessage.getString(key);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }