activemq推送学习

来源:互联网 发布:沈阳seo公司 编辑:程序博客网 时间:2024/06/05 17:27

1.activemq相关依赖

         <dependency>            <groupId>org.apache.activemq</groupId>            <artifactId>activemq-core</artifactId>            <version>5.7.0</version>            <exclusions>                <exclusion>                    <artifactId>spring-context</artifactId>                    <groupId>org.springframework</groupId>                </exclusion>            </exclusions>        </dependency>        <dependency>            <groupId>org.apache.activemq</groupId>            <artifactId>activemq-pool</artifactId>            <version>5.7.0</version>        </dependency>        <dependency>            <groupId>org.springframework</groupId>            <artifactId>spring-jms</artifactId>            <version>4.1.6.RELEASE</version>        </dependency>

2.配置文件

<?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.xsd">    <!-- connectionFactory -->    <bean id="jmsFactory" class="org.apache.activemq.pool.PooledConnectionFactory"          destroy-method="stop">        <property name="connectionFactory">            <bean class="org.apache.activemq.ActiveMQConnectionFactory">                <property name="brokerURL">                    <value>${mq.address}</value>                </property>            </bean>        </property>        <property name="maxConnections" value="${mq.maxConnections}"></property>    </bean>    <!-- Spring JMS Template -->    <bean id="jmsTemplate" class="org.springframework.jms.core.JmsTemplate">        <property name="connectionFactory">            <ref bean="jmsFactory"/>        </property>        <property name="defaultDestinationName" value="subject"/>        <!-- 区别它采用的模式为false是p2p为true是订阅 -->        <property name="pubSubDomain" value="false"/>        <property name="deliveryMode" value="2"/>    </bean>    <bean id="creditCommitMessageContainer" class="org.springframework.jms.listener.SimpleMessageListenerContainer">        <property name="connectionFactory" ref="jmsFactory" />        <property name="destinationName" value="${com.cheguo.cls.broker.mq.credit_auth}" />        <property name="messageListener">            <bean class="com.cgw360.cls.receiver.CreditAuthMessageReceiver"/>        </property>    </bean></beans>

3.启动activemq服务
下载activemq到本地一个英文目录下,如果不是英文目录,会出现无法访问管理页面的bug。运行activemq.bat启动服务。然后访问http://127.0.0.1:8161/admin/,用户名密码都是admin,能访问说明启动成功了。

4.service代码编写

 public Message createMessage(Session session) throws JMSException {                        TextMessage tm = session.createTextMessage();                        tm.setText(message);                            tm.setIntProperty("", x);                        return tm;                    }

只要用这个service就可以推送消息了。

5.消息接受

public class ReceiverImpl implements Receiver {    @Autowired    private JmsTemplate jmsTemplate;    @Autowired    private Destination destination;    /**     * @see com.cathy.demo.jms.receiver.Receiver#receive()     */    public void receive() {        MapMessage mapMessage = (MapMessage) jmsTemplate.receive(destination);        if (mapMessage != null) {            System.out.println(mapMessage);        }    }}
0 0