activeMQ(三)spring---springBoot整合使用

1、activeMQ与spring整合:     

①依赖的jar包 和application.xml配置     

<!--  broker 的绑定  -->
<dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-databind</artifactId>
    <version>2.9.5</version>
</dependency>

<!--  activeMQ  jms 的支持  -->
<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-jms</artifactId>
    <version>4.3.23.RELEASE</version>
</dependency>
<dependency>    <!--  pool 池化包相关的支持  -->
    <groupId>org.apache.activemq</groupId>
    <artifactId>activemq-pool</artifactId>
    <version>5.15.9</version>
</dependency>
======================================================================================  

<!-- 组件扫描 -->
<context:component-scan base-package="com.zixue"/>

<!-- activeMQ连接工厂-->
<bean id="connectionFactory" class="org.apache.activemq.pool.PooledConnectionFactory">
    <property name="connectionFactory" >
        <bean class="org.apache.activemq.ActiveMQConnectionFactory">
            <property name="brokerURL" value="tcp://192.168.25.25:61616"/>
        </bean>
    </property>
    <property name="maxConnections" value="100"/>
</bean>

<!-- 队列-->
<bean id="queue" class="org.apache.activemq.command.ActiveMQQueue">
    <constructor-arg name="name" value="queue-name"/>
</bean>
<!-- topic-->
<bean id="topic" class="org.apache.activemq.command.ActiveMQTopic">
    <constructor-arg name="name" value="topic-name"/>
</bean>


<!-- JMS模板 -->
<bean id="JmsTemplate" class="org.springframework.jms.core.JmsTemplate">
    <constructor-arg name="connectionFactory" ref="connectionFactory"/>
    <property name="defaultDestination" ref="queue"/>
    <property name="messageConverter" >
        <!-- Java 对象(POJOs)与 JSON 格式内容之间的转化 -->
        <bean class="org.springframework.jms.support.converter.SimpleMessageConverter"/>
    </property>
</bean>
 
 <!-- 消息监听器 -->
<bean id="jmsListener" class="org.springframework.jms.listener.DefaultMessageListenerContainer">
    <property name="connectionFactory" ref="connectionFactory"/>
    <property name="destination" ref="topic"/>
    <!--实现 MyMessageListener-->
    <property name="messageListener" ref="myMessageListener"/>
</bean>   

②生产者和消费者代码实现     

public class Product {
    
    //生产者
    @Autowired
    private JmsTemplate JmsTemplate;

    public static void main(String[] args) {
    
    

        ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");
        Product product = (Product) context.getBean("product");
        product.JmsTemplate.send((session)->{
    
    
                TextMessage message = session.createTextMessage("欢迎我的第一次到来。。。");
                return message;
        });
    }
}
======================================================================================  
public class Customer {
    
    //消费者
    @Autowired
    private JmsTemplate JmsTemplate;

    public static void main(String[] args) {
    
    

        ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");
        Customer customer = (Customer) context.getBean("customer");
        String str = (String) customer.JmsTemplate.receiveAndConvert();
        System.out.println("接受到"+str);
    }
}


③监听器     

public class MyMessageListener implements MessageListener {
    
    
    @Override
    public void onMessage(Message message) {
    
    
        if (null != message && message instanceof TextMessage) {
    
    
            TextMessage str = (TextMessage) message;
            try {
    
    
                System.out.println("接受到" + str.getText());
            } catch (JMSException e) {
    
    
                e.printStackTrace();
           		 }
        }
    }
}

springBoot待续。。。。。

猜你喜欢

转载自blog.csdn.net/jue6628/article/details/97616106
今日推荐