spring boot集成rabbitmq

来源:互联网 发布:紫金桥软件 编辑:程序博客网 时间:2024/04/30 15:54
一。在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();     } }





0 0
原创粉丝点击