01.SpringBoot整合ActiveMQ

SpringBoot

一、SpringBoot介绍

Spring 诞生时是 Java 企业版(Java Enterprise Edition,JEE,也称 J2EE)的轻量级代替品。无需开发重量级的 Enterprise JavaBean(EJB),Spring 为企业级Java 开发提供了一种相对简单的方法,通过依赖注入和面向切面编程,用简单的Java 对象(Plain Old Java Object,POJO)实现了 EJB 的功能。

1). SpringBoot特性

  1. 基于Spring的开发提供更快的入门体验
  2. 开箱即用,没有代码生成,无需XML配置。同时也可以修改默认值来满足特定的需求。
  3. 提供了一些大型项目中常见的非功能特性,如嵌入式服务器,安全、指标、健康监测、外部配置等等。
  4. SpringBoot并不是对Spring功能上的增强,而是提供一种快速使用Spring的方式

二、快速搭建SpringBoot的maven项目

整合ActiveMQ为例进行简单演示 1.https://www.jianshu.com/p/4618ff34e4b2 2.https://www.jianshu.com/p/6e1df6904188;SpringBoot默认使用点对点模式! 发布订阅模式后面后面再介绍


01.SpringBoot整合ActiveMQ_第1张图片
SpringBoot入门.png

1). pom.xml配置

启动依赖、指定编译版本、热部署、打包方式为jar,内置的有Web容器插件



    4.0.0

    com.lingting
    g_6_SpringBoot
    1.0-SNAPSHOT
    
    jar

    
    
        org.springframework.boot
        spring-boot-starter-parent
        1.4.0.RELEASE
    

    
    
        1.8
    

    
        
            org.springframework.boot
            spring-boot-starter-web
        

        
        
            org.springframework.boot
            spring-boot-devtools
        

        
        
            org.springframework.boot
            spring-boot-starter-activemq
        

    

2). 覆盖默认配置的配置文件 application.properties

默认配置文件名为 application.properties ,建议不要修改;中文要转换为16进制表示

# access port
server.port=80
# ActiveMQ address
spring.activemq.broker-url=tcp://192.168.74.129:61616
# other properties
mylover=xiaoQing

3). 配置启动入口类 Application

package com.lingting.controller;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

/**
 * SpringBoot 启动类;
 *      @SpringBootApplication:等同于下面三个配置的总合
 *          @Configuration: 用于定义一个配置类
 *          @EnableAutoConfiguration :Spring Boot会自动根据你jar包的依赖来自动配置项目。
 *          @ComponentScan: 告诉Spring 哪个packages 的用注解标识的类 会被spring自动扫描并且装入bean容器。
 * 可以配置初始化的一些bean;
 * */
@SpringBootApplication
public class Application {

    public static void main(String[] args) {
        SpringApplication.run(Application.class, args);
    }
}

4). 点对点生产者 QueueGenerateController

SpringBoot默认使用点对点的模式; 默认使用内置的MQ

package com.lingting.controller;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.core.env.Environment;
import org.springframework.jms.core.JmsMessagingTemplate;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import java.util.HashMap;
import java.util.Map;

@RestController
public class QueueGenerateController {

    /** 配置文件内容 */
    @Autowired
    private Environment env;

    /** SpringMQ发送消息的模板 */
    @Autowired
    private JmsMessagingTemplate jmsMessagingTemplate;

    @RequestMapping("/hello")
    public String sayHello() {
        return "

Hello Word! SpringBoot myLover : "+ env.getProperty("mylover") + "

"; } /** 发送文本消息 */ @RequestMapping("/send") public void send(String text) { jmsMessagingTemplate.convertAndSend("springBootQueue", text); } /** 发送短信 */ @RequestMapping("/sendsms") public void sendSms() { Map map = new HashMap(); map.put("mobile", "18190681640"); map.put("template_code", "SMS_160572444"); map.put("sign_name", "哈哈大圣"); map.put("param", "{\"code\":\"686868\"}"); jmsMessagingTemplate.convertAndSend("sms", map); } }

5). 点对点消费者 QueueGenerateController

package com.lingting.controller;

import org.springframework.jms.annotation.JmsListener;
import org.springframework.stereotype.Component;

import java.util.Map;

@Component
public class QueueConsumer {

    /** 直接用队列中的类型进行参数接收 */
    @JmsListener(destination = "springBootQueue")
    public void readMessageListener(String text) {
        System.out.println("receive message: " + text);
    }

    @JmsListener(destination = "smsNotHere")
    public void readMessageListenerMap(Map map) {
        System.out.println("receive message: " + map);
    }
}

此项目中的发送短信的生产者可以配合下一篇 《SpringBoot、ActiveMQ、阿里大于短信微服务》

你可能感兴趣的:(01.SpringBoot整合ActiveMQ)