spring boot集成rabbitmq

一。在windows下安装rabbitmq

 

1.下载 http://www.rabbitmq.com/install-windows.html  

   安装时会提示如果没有erl  

 

2.添加用户 

  在操作之前需要起停服务用如下命令

  net stop RabbitMQ && net start RabbitMQ   

 注意需要用管理员打开cmd窗口,否则执行不了

 

C:\Program Files\RabbitMQ Server\rabbitmq_server-3.6.9\sbin>rabbitmqctl.bat add_user geffzhang yaojinquan

Creating user "geffzhang" ...

 

C:\Program Files\RabbitMQ Server\rabbitmq_server-3.6.9\sbin>rabbitmqctl.bat list_users

Listing users ...

geffzhang []

guest [administrator]

 

3.赋予权限

C:\Program Files\RabbitMQ Server\rabbitmq_server-3.6.9\sbin>rabbitmqctl.bat set_user_tags geffzhang administrator

Setting tags for user "geffzhang" to [administrator] ...

 

C:\Program Files\RabbitMQ Server\rabbitmq_server-3.6.9\sbin>rabbitmqctl.bat set_permissions -p / geffzhang ".*" ".*" ".*"

Setting permissions for user "geffzhang" in vhost "/" ...

 

浏览器输入  http://localhost:15672  用刚刚创建的用户名密码即可进入监控界面

 

二。spring  boot 编码

 1.pom.xml

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> 
  <modelVersion>4.0.0</modelVersion> 
  <groupId>springboot-rocketmq-test</groupId> 
  <artifactId>springboot-rocketmq-test</artifactId> 
  <packaging>war</packaging> 
  <version>0.0.1-SNAPSHOT</version> 
  <name>springboot-rocketmq-test Maven Webapp</name> 
  <url>http://maven.apache.org</url> 
  <dependencies> 
      <dependency> 
            <groupId>org.springframework.boot</groupId> 
            <artifactId>spring-boot-starter-web</artifactId> 
            <version>1.4.1.RELEASE</version> 
        </dependency> 
        <dependency> 
            <groupId>org.springframework.boot</groupId> 
            <artifactId>spring-boot-starter-tomcat</artifactId> 
            <version>1.4.1.RELEASE</version> 
            <scope>provided</scope> 
        </dependency> 
        <dependency> 
            <groupId>org.springframework.boot</groupId> 
            <artifactId>spring-boot-starter-actuator</artifactId> 
            <version>1.4.1.RELEASE</version> 
        </dependency> 
        <!-- https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-test --> 
        <dependency> 
            <groupId>org.springframework.boot</groupId> 
            <artifactId>spring-boot-starter-test</artifactId> 
            <version>1.4.1.RELEASE</version> 
        </dependency> 

        <!-- rabbitmq --> 
        <dependency> 
                <groupId>org.springframework.boot</groupId> 
                <artifactId>spring-boot-starter-amqp</artifactId> 
                <version>1.3.1.RELEASE</version> 
        </dependency> 

        <!-- https://mvnrepository.com/artifact/log4j/log4j --> 
        <dependency> 
            <groupId>log4j</groupId> 
            <artifactId>log4j</artifactId> 
            <version>1.2.16</version> 
        </dependency> 
        <!-- https://mvnrepository.com/artifact/org.slf4j/slf4j-api --> 

        <dependency> 
            <groupId>org.slf4j</groupId> 
            <artifactId>slf4j-api</artifactId> 
            <version>1.6.1</version> 
        </dependency> 

        <dependency> 
            <groupId>junit</groupId> 
            <artifactId>junit</artifactId> 
            <version>4.12</version> 
            <scope>test</scope> 
        </dependency> 

  </dependencies> 
  <build> 
    <finalName>springboot-rocketmq-test</finalName> 
  </build> 
</project>

 

2.application.properties

spring.rabbitmq.host=127.0.0.1 
spring.rabbitmq.port=5672 
spring.rabbitmq.username=geffzhang 
spring.rabbitmq.password=yaojinquan

  RabbitConfig.java

 

package rocketmq.test; 

import org.springframework.context.annotation.Bean; 
import org.springframework.context.annotation.Configuration; 
import org.springframework.amqp.core.Queue; 

@Configuration 
public class RabbitConfig { 
     @Bean 
     public Queue Queue() { 
           return new Queue("yaojinquan"); 
     } 
}

 

HelloSender.java

 

package rocketmq.test; 

import java.util.Date; 

import org.springframework.amqp.core.AmqpTemplate; 
import org.springframework.beans.factory.annotation.Autowired; 
import org.springframework.stereotype.Component; 
@Component 
public class HelloSender { 
    @Autowired 
    private AmqpTemplate rabbitTemplate; 

    public void send() { 
        String context = "hello " + new Date(); 
        System.out.println("Sender : " + context); 
        this.rabbitTemplate.convertAndSend("yaojinquan", context); 
    } 
}

 

HelloReceiver.java

package rocketmq.test; 

import org.springframework.amqp.rabbit.annotation.RabbitHandler; 
import org.springframework.amqp.rabbit.annotation.RabbitListener; 
import org.springframework.stereotype.Component; 

@Component 
@RabbitListener(queues = "yaojinquan") 
public class HelloReceiver { 
     @RabbitHandler 
     public void process(String hello) { 
         System.out.println("Receiver  : " + hello); 
     } 
}

 

Application.java

 

package rocketmq.test; 

import org.springframework.amqp.rabbit.config.SimpleRabbitListenerContainerFactory; 
import org.springframework.amqp.rabbit.connection.ConnectionFactory; 
import org.springframework.amqp.rabbit.core.RabbitTemplate; 
import org.springframework.amqp.support.converter.Jackson2JsonMessageConverter; 
import org.springframework.boot.SpringApplication; 
import org.springframework.boot.autoconfigure.SpringBootApplication; 
import org.springframework.context.annotation.Bean; 

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

    @Bean 
    public RabbitTemplate rabbitTemplate(ConnectionFactory connectionFactory) { 
        RabbitTemplate template = new RabbitTemplate(connectionFactory); 
        template.setMessageConverter(new Jackson2JsonMessageConverter()); 
        return template; 
    } 

    @Bean 
    public SimpleRabbitListenerContainerFactory rabbitListenerContainerFactory(ConnectionFactory connectionFactory) { 
        SimpleRabbitListenerContainerFactory factory = new SimpleRabbitListenerContainerFactory(); 
        factory.setConnectionFactory(connectionFactory); 
        factory.setMessageConverter(new Jackson2JsonMessageConverter()); 
        return factory; 
    } 
}

 

 

Test

package rocketmq.test; 

import org.junit.Test; 
import org.junit.runner.RunWith; 
import org.springframework.beans.factory.annotation.Autowired; 
import org.springframework.boot.test.context.SpringBootTest; 
import org.springframework.test.context.junit4.SpringRunner; 

@RunWith(SpringRunner.class) 
@SpringBootTest 
public class RabbitMqHelloTest { 
    @Autowired 
    private HelloSender helloSender; 

    @Test 
    public void hello() throws Exception { 
        helloSender.send(); 
    } 
}

--------------

spring mvc+tomcat源码分析视频 (复制链接在浏览器打开)

https://study.163.com/course/courseMain.htm?share=2&shareId=480000001919582&courseId=1209399899&_trace_c_p_k2_=6d81bc445e9c462ab8d6345e40f6b0bf

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值