spring,springboot整合ActiveMQ

spring与activemq的整合:

jar包

<dependency>
              <!--activemq的jar-->
              <groupId>org.apache.activemq</groupId>
              <artifactId>activemq-all</artifactId>
              <version>5.15.9</version>
          </dependency>
          <!--整合spring-->
          <dependency>
              <groupId>org.springframework</groupId>
              <artifactId>spring-context</artifactId>
              <version>5.2.5.RELEASE</version>
          </dependency>
          <dependency>
              <groupId>org.springframework</groupId>
              <artifactId>spring-jms</artifactId>
              <version>5.2.5.RELEASE</version>
          </dependency>
          <dependency>
              <groupId>org.apache.activemq</groupId>
              <artifactId>activemq-pool</artifactId>
              <version>5.15.15</version>
          </dependency>
          <dependency>
              <groupId>org.apache.xbean</groupId>
              <artifactId>xbean-spring</artifactId>
              <version>3.16</version>
          </dependency>

配置文件

测试类

//生产者
@Service
public class Springmessage {
    @Autowired
    private JmsTemplate jmsTemplate;

    public static void main(String[] args) {
        ApplicationContext context=new ClassPathXmlApplicationContext("appliction.xml");
        Springmessage springmessage = (Springmessage) context.getBean(Springmessage.class);
        springmessage.jmsTemplate.send(new MessageCreator() {
            @Override
            public Message createMessage(Session session) throws JMSException {
                TextMessage textMessage = session.createTextMessage("spring--active333");
                return textMessage;
            }
        });
        System.out.println("test  over");
    }
}

//消费者
@Service
public class Springconstmer {
    @Autowired
    private JmsTemplate jmsTemplate;

    public static void main(String[] args) {
        ApplicationContext context=new ClassPathXmlApplicationContext("appliction.xml");
        Springconstmer springconstmer=context.getBean(Springconstmer.class);
        String message = (String) springconstmer.jmsTemplate.receiveAndConvert();
        System.out.println(message);
    }
}
//监听器
@Component
public class mymessageListener implements MessageListener {
    @Override
    public void onMessage(Message message) {
         if(null!=message && message instanceof TextMessage){
             TextMessage textMessage=(TextMessage) message;
             try {
                 System.out.println(textMessage.getText());
             }catch (Exception e){
                 e.printStackTrace();
             }
         }
    }
}

springboot与activemq的整合:

jar

<dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-activemq</artifactId>
             <version>2.6.7</version>
        </dependency>

配置文件:

#Activemq配置
#username  and password 采用默认
spring.activemq.password=admin
spring.activemq.user=admin
#是否使用内嵌的MQ
spring.activemq.in-memory=false
#是否信任MQ的所有jar
spring.activemq.packages.trust-all=true
#MQ服务的ip:端口号
spring.activemq.broker-url=tcp://192.168.150.128:61616
#是否开启主题订阅
spring.jms.pub-sub-domain=true

测试类

需要注意的是:Queue和Topic的jar是javax.jms中的,而不是java,util下的

经验分享 程序员 微信小程序 职场和发展