Browse Source

add rabbitmq

ityouknow 8 years ago
parent
commit
a4105ecb77
29 changed files with 472 additions and 30 deletions
  1. 1 1
      README.md
  2. 3 3
      spring-boot-rabbitmq/pom.xml
  3. 0 0
      spring-boot-rabbitmq/src/main/java/com/neo/Application.java
  4. 37 0
      spring-boot-rabbitmq/src/main/java/com/neo/model/User.java
  5. 49 0
      spring-boot-rabbitmq/src/main/java/com/neo/rabbit/FanoutRabbitConfig.java
  6. 5 1
      spring-boot-rabbitmq/src/main/java/com/neo/rabbit/RabbitConfig.java
  7. 41 0
      spring-boot-rabbitmq/src/main/java/com/neo/rabbit/TopicRabbitConfig.java
  8. 16 0
      spring-boot-rabbitmq/src/main/java/com/neo/rabbit/fanout/FanoutReceiverA.java
  9. 16 0
      spring-boot-rabbitmq/src/main/java/com/neo/rabbit/fanout/FanoutReceiverB.java
  10. 16 0
      spring-boot-rabbitmq/src/main/java/com/neo/rabbit/fanout/FanoutReceiverC.java
  11. 19 0
      spring-boot-rabbitmq/src/main/java/com/neo/rabbit/fanout/FanoutSender.java
  12. 2 2
      spring-boot-rabbitmq/src/main/java/com/neo/rabbit/hello/HelloReceiver.java
  13. 1 1
      spring-boot-rabbitmq/src/main/java/com/neo/rabbit/hello/HelloSender.java
  14. 3 3
      spring-boot-rabbitmq/src/main/java/com/neo/rabbit/many/NeoReceiver1.java
  15. 16 0
      spring-boot-rabbitmq/src/main/java/com/neo/rabbit/many/NeoReceiver2.java
  16. 4 6
      spring-boot-rabbitmq/src/main/java/com/neo/rabbit/many/NeoSender.java
  17. 19 0
      spring-boot-rabbitmq/src/main/java/com/neo/rabbit/many/NeoSender2.java
  18. 17 0
      spring-boot-rabbitmq/src/main/java/com/neo/rabbit/object/ObjectReceiver.java
  19. 21 0
      spring-boot-rabbitmq/src/main/java/com/neo/rabbit/object/ObjectSender.java
  20. 16 0
      spring-boot-rabbitmq/src/main/java/com/neo/rabbit/topic/TopicReceiver.java
  21. 16 0
      spring-boot-rabbitmq/src/main/java/com/neo/rabbit/topic/TopicReceiver2.java
  22. 33 0
      spring-boot-rabbitmq/src/main/java/com/neo/rabbit/topic/TopicSender.java
  23. 2 2
      spring-boot-rabbitmq/src/main/resources/application.properties
  24. 0 0
      spring-boot-rabbitmq/src/test/java/com/neo/ApplicationTests.java
  25. 24 0
      spring-boot-rabbitmq/src/test/java/com/neo/rabbitmq/FanoutTest.java
  26. 2 11
      spring-boot-rabbitmq/src/test/java/com/neo/rabbitmq/HelloTest.java
  27. 35 0
      spring-boot-rabbitmq/src/test/java/com/neo/rabbitmq/ManyTest.java
  28. 26 0
      spring-boot-rabbitmq/src/test/java/com/neo/rabbitmq/ObjectTest.java
  29. 32 0
      spring-boot-rabbitmq/src/test/java/com/neo/rabbitmq/TopicTest.java

+ 1 - 1
README.md

@@ -12,7 +12,7 @@ Spring boot使用的各种示例,以最简单、最实用为标准
 
 - [spring-boot-mybaits-xml](https://github.com/ityouknow/spring-boot-starter/tree/master/spring-boot-mybatis-xml):xml配置版本
 
-- [spring-boot-rabbitmq-simple](https://github.com/ityouknow/spring-boot-starter/tree/master/spring-boot-rabbitmq-simple):spring boot和rabbitmq简单应用
+- [spring-boot-rabbitmq](https://github.com/ityouknow/spring-boot-starter/tree/master/spring-boot-rabbitmq):spring boot和rabbitmq简单应用
 
 
 

+ 3 - 3
spring-boot-rabbitmq-simple/pom.xml → spring-boot-rabbitmq/pom.xml

@@ -4,17 +4,17 @@
 	<modelVersion>4.0.0</modelVersion>
 
 	<groupId>com.neo</groupId>
-	<artifactId>spring-boot-rabbitmq-simple</artifactId>
+	<artifactId>spring-boot-rabbitmq</artifactId>
 	<version>1.0.0</version>
 	<packaging>jar</packaging>
 
-	<name>spring-boot-rabbitmq-simple</name>
+	<name>spring-boot-rabbitmq</name>
 	<description>Demo project for Spring Boot and rabbitmq</description>
 
 	<parent>
 		<groupId>org.springframework.boot</groupId>
 		<artifactId>spring-boot-starter-parent</artifactId>
-		<version>1.4.1.RELEASE</version>
+		<version>1.4.2.RELEASE</version>
 		<relativePath/> <!-- lookup parent from repository -->
 	</parent>
 

+ 0 - 0
spring-boot-rabbitmq-simple/src/main/java/com/neo/Application.java → spring-boot-rabbitmq/src/main/java/com/neo/Application.java


+ 37 - 0
spring-boot-rabbitmq/src/main/java/com/neo/model/User.java

@@ -0,0 +1,37 @@
+package com.neo.model;
+
+import java.io.Serializable;
+
+/**
+ * Created by summer on 2016/11/29.
+ */
+public class User implements Serializable{
+
+    private String name;
+
+    private String pass;
+
+    public String getName() {
+        return name;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+
+    public String getPass() {
+        return pass;
+    }
+
+    public void setPass(String pass) {
+        this.pass = pass;
+    }
+
+    @Override
+    public String toString() {
+        return "User{" +
+                "name='" + name + '\'' +
+                ", pass='" + pass + '\'' +
+                '}';
+    }
+}

+ 49 - 0
spring-boot-rabbitmq/src/main/java/com/neo/rabbit/FanoutRabbitConfig.java

@@ -0,0 +1,49 @@
+package com.neo.rabbit;
+
+import org.springframework.amqp.core.Binding;
+import org.springframework.amqp.core.BindingBuilder;
+import org.springframework.amqp.core.FanoutExchange;
+import org.springframework.amqp.core.Queue;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+
+@Configuration
+public class FanoutRabbitConfig {
+
+    @Bean
+    public Queue AMessage() {
+        return new Queue("fanout.A");
+    }
+
+    @Bean
+    public Queue BMessage() {
+        return new Queue("fanout.B");
+    }
+
+    @Bean
+    public Queue CMessage() {
+        return new Queue("fanout.C");
+    }
+
+    @Bean
+    FanoutExchange fanoutExchange() {
+        return new FanoutExchange("fanoutExchange");
+    }
+
+    @Bean
+    Binding bindingExchangeA(Queue AMessage,FanoutExchange fanoutExchange) {
+        return BindingBuilder.bind(AMessage).to(fanoutExchange);
+    }
+
+    @Bean
+    Binding bindingExchangeB(Queue BMessage, FanoutExchange fanoutExchange) {
+        return BindingBuilder.bind(BMessage).to(fanoutExchange);
+    }
+
+    @Bean
+    Binding bindingExchangeC(Queue CMessage, FanoutExchange fanoutExchange) {
+        return BindingBuilder.bind(CMessage).to(fanoutExchange);
+    }
+
+}

+ 5 - 1
spring-boot-rabbitmq-simple/src/main/java/com/neo/rabbit/RabbitConfig.java → spring-boot-rabbitmq/src/main/java/com/neo/rabbit/RabbitConfig.java

@@ -13,11 +13,15 @@ public class RabbitConfig {
         return new Queue("hello");
     }
 
-
     @Bean
     public Queue neoQueue() {
         return new Queue("neo");
     }
 
+    @Bean
+    public Queue objectQueue() {
+        return new Queue("object");
+    }
+
 
 }

+ 41 - 0
spring-boot-rabbitmq/src/main/java/com/neo/rabbit/TopicRabbitConfig.java

@@ -0,0 +1,41 @@
+package com.neo.rabbit;
+
+import org.springframework.amqp.core.Binding;
+import org.springframework.amqp.core.BindingBuilder;
+import org.springframework.amqp.core.Queue;
+import org.springframework.amqp.core.TopicExchange;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+
+@Configuration
+public class TopicRabbitConfig {
+
+    final static String message = "topic.message";
+    final static String messages = "topic.messages";
+
+    @Bean
+    public Queue queueMessage() {
+        return new Queue(TopicRabbitConfig.message);
+    }
+
+    @Bean
+    public Queue queueMessages() {
+        return new Queue(TopicRabbitConfig.messages);
+    }
+
+    @Bean
+    TopicExchange exchange() {
+        return new TopicExchange("topicExchange");
+    }
+
+    @Bean
+    Binding bindingExchangeMessage(Queue queueMessage, TopicExchange exchange) {
+        return BindingBuilder.bind(queueMessage).to(exchange).with("topic.message");
+    }
+
+    @Bean
+    Binding bindingExchangeMessages(Queue queueMessages, TopicExchange exchange) {
+        return BindingBuilder.bind(queueMessages).to(exchange).with("topic.#");
+    }
+}

+ 16 - 0
spring-boot-rabbitmq/src/main/java/com/neo/rabbit/fanout/FanoutReceiverA.java

@@ -0,0 +1,16 @@
+package com.neo.rabbit.fanout;
+
+import org.springframework.amqp.rabbit.annotation.RabbitHandler;
+import org.springframework.amqp.rabbit.annotation.RabbitListener;
+import org.springframework.stereotype.Component;
+
+@Component
+@RabbitListener(queues = "fanout.A")
+public class FanoutReceiverA {
+
+    @RabbitHandler
+    public void process(String message) {
+        System.out.println("fanout Receiver A  : " + message);
+    }
+
+}

+ 16 - 0
spring-boot-rabbitmq/src/main/java/com/neo/rabbit/fanout/FanoutReceiverB.java

@@ -0,0 +1,16 @@
+package com.neo.rabbit.fanout;
+
+import org.springframework.amqp.rabbit.annotation.RabbitHandler;
+import org.springframework.amqp.rabbit.annotation.RabbitListener;
+import org.springframework.stereotype.Component;
+
+@Component
+@RabbitListener(queues = "fanout.B")
+public class FanoutReceiverB {
+
+    @RabbitHandler
+    public void process(String message) {
+        System.out.println("fanout Receiver B: " + message);
+    }
+
+}

+ 16 - 0
spring-boot-rabbitmq/src/main/java/com/neo/rabbit/fanout/FanoutReceiverC.java

@@ -0,0 +1,16 @@
+package com.neo.rabbit.fanout;
+
+import org.springframework.amqp.rabbit.annotation.RabbitHandler;
+import org.springframework.amqp.rabbit.annotation.RabbitListener;
+import org.springframework.stereotype.Component;
+
+@Component
+@RabbitListener(queues = "fanout.C")
+public class FanoutReceiverC {
+
+    @RabbitHandler
+    public void process(String message) {
+        System.out.println("fanout Receiver C: " + message);
+    }
+
+}

+ 19 - 0
spring-boot-rabbitmq/src/main/java/com/neo/rabbit/fanout/FanoutSender.java

@@ -0,0 +1,19 @@
+package com.neo.rabbit.fanout;
+
+import org.springframework.amqp.core.AmqpTemplate;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+@Component
+public class FanoutSender {
+
+	@Autowired
+	private AmqpTemplate rabbitTemplate;
+
+	public void send() {
+		String context = "hi, fanout msg ";
+		System.out.println("Sender : " + context);
+		this.rabbitTemplate.convertAndSend("fanoutExchange","", context);
+	}
+
+}

+ 2 - 2
spring-boot-rabbitmq-simple/src/main/java/com/neo/rabbit/HelloReceiver.java → spring-boot-rabbitmq/src/main/java/com/neo/rabbit/hello/HelloReceiver.java

@@ -1,4 +1,4 @@
-package com.neo.rabbit;
+package com.neo.rabbit.hello;
 
 import org.springframework.amqp.rabbit.annotation.RabbitHandler;
 import org.springframework.amqp.rabbit.annotation.RabbitListener;
@@ -13,7 +13,7 @@ public class HelloReceiver {
 
     @RabbitHandler
     public void process(String hello) {
-        System.out.println("Receiver : " + hello);
+        System.out.println("Receiver  : " + hello);
     }
 
 }

+ 1 - 1
spring-boot-rabbitmq-simple/src/main/java/com/neo/rabbit/HelloSender.java → spring-boot-rabbitmq/src/main/java/com/neo/rabbit/hello/HelloSender.java

@@ -1,4 +1,4 @@
-package com.neo.rabbit;
+package com.neo.rabbit.hello;
 
 import org.springframework.amqp.core.AmqpTemplate;
 import org.springframework.amqp.rabbit.core.RabbitTemplate;

+ 3 - 3
spring-boot-rabbitmq-simple/src/main/java/com/neo/rabbit/NeoReceiver.java → spring-boot-rabbitmq/src/main/java/com/neo/rabbit/many/NeoReceiver1.java

@@ -1,4 +1,4 @@
-package com.neo.rabbit;
+package com.neo.rabbit.many;
 
 import org.springframework.amqp.rabbit.annotation.RabbitHandler;
 import org.springframework.amqp.rabbit.annotation.RabbitListener;
@@ -6,11 +6,11 @@ import org.springframework.stereotype.Component;
 
 @Component
 @RabbitListener(queues = "neo")
-public class NeoReceiver {
+public class NeoReceiver1 {
 
     @RabbitHandler
     public void process(String neo) {
-        System.out.println("Receiver : " + neo);
+        System.out.println("Receiver 1: " + neo);
     }
 
 }

+ 16 - 0
spring-boot-rabbitmq/src/main/java/com/neo/rabbit/many/NeoReceiver2.java

@@ -0,0 +1,16 @@
+package com.neo.rabbit.many;
+
+import org.springframework.amqp.rabbit.annotation.RabbitHandler;
+import org.springframework.amqp.rabbit.annotation.RabbitListener;
+import org.springframework.stereotype.Component;
+
+@Component
+@RabbitListener(queues = "neo")
+public class NeoReceiver2 {
+
+    @RabbitHandler
+    public void process(String neo) {
+        System.out.println("Receiver 2: " + neo);
+    }
+
+}

+ 4 - 6
spring-boot-rabbitmq-simple/src/main/java/com/neo/rabbit/NeoSender.java → spring-boot-rabbitmq/src/main/java/com/neo/rabbit/many/NeoSender.java

@@ -1,20 +1,18 @@
-package com.neo.rabbit;
+package com.neo.rabbit.many;
 
 import org.springframework.amqp.core.AmqpTemplate;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 
-import java.util.Date;
-
 @Component
 public class NeoSender {
 
 	@Autowired
 	private AmqpTemplate rabbitTemplate;
 
-	public void send() {
-		String context = "neo test queue";
-		System.out.println("Sender : " + context);
+	public void send(int i) {
+		String context = "spirng boot neo queue"+" ****** "+i;
+		System.out.println("Sender1 : " + context);
 		this.rabbitTemplate.convertAndSend("neo", context);
 	}
 

+ 19 - 0
spring-boot-rabbitmq/src/main/java/com/neo/rabbit/many/NeoSender2.java

@@ -0,0 +1,19 @@
+package com.neo.rabbit.many;
+
+import org.springframework.amqp.core.AmqpTemplate;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+@Component
+public class NeoSender2 {
+
+	@Autowired
+	private AmqpTemplate rabbitTemplate;
+
+	public void send(int i) {
+		String context = "spirng boot neo queue"+" ****** "+i;
+		System.out.println("Sender2 : " + context);
+		this.rabbitTemplate.convertAndSend("neo", context);
+	}
+
+}

+ 17 - 0
spring-boot-rabbitmq/src/main/java/com/neo/rabbit/object/ObjectReceiver.java

@@ -0,0 +1,17 @@
+package com.neo.rabbit.object;
+
+import com.neo.model.User;
+import org.springframework.amqp.rabbit.annotation.RabbitHandler;
+import org.springframework.amqp.rabbit.annotation.RabbitListener;
+import org.springframework.stereotype.Component;
+
+@Component
+@RabbitListener(queues = "object")
+public class ObjectReceiver {
+
+    @RabbitHandler
+    public void process(User user) {
+        System.out.println("Receiver object : " + user);
+    }
+
+}

+ 21 - 0
spring-boot-rabbitmq/src/main/java/com/neo/rabbit/object/ObjectSender.java

@@ -0,0 +1,21 @@
+package com.neo.rabbit.object;
+
+import com.neo.model.User;
+import org.springframework.amqp.core.AmqpTemplate;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+import java.util.Date;
+
+@Component
+public class ObjectSender {
+
+	@Autowired
+	private AmqpTemplate rabbitTemplate;
+
+	public void send(User user) {
+		System.out.println("Sender object: " + user.toString());
+		this.rabbitTemplate.convertAndSend("object", user);
+	}
+
+}

+ 16 - 0
spring-boot-rabbitmq/src/main/java/com/neo/rabbit/topic/TopicReceiver.java

@@ -0,0 +1,16 @@
+package com.neo.rabbit.topic;
+
+import org.springframework.amqp.rabbit.annotation.RabbitHandler;
+import org.springframework.amqp.rabbit.annotation.RabbitListener;
+import org.springframework.stereotype.Component;
+
+@Component
+@RabbitListener(queues = "topic.message")
+public class TopicReceiver {
+
+    @RabbitHandler
+    public void process(String message) {
+        System.out.println("Topic Receiver1  : " + message);
+    }
+
+}

+ 16 - 0
spring-boot-rabbitmq/src/main/java/com/neo/rabbit/topic/TopicReceiver2.java

@@ -0,0 +1,16 @@
+package com.neo.rabbit.topic;
+
+import org.springframework.amqp.rabbit.annotation.RabbitHandler;
+import org.springframework.amqp.rabbit.annotation.RabbitListener;
+import org.springframework.stereotype.Component;
+
+@Component
+@RabbitListener(queues = "topic.messages")
+public class TopicReceiver2 {
+
+    @RabbitHandler
+    public void process(String message) {
+        System.out.println("Topic Receiver2  : " + message);
+    }
+
+}

+ 33 - 0
spring-boot-rabbitmq/src/main/java/com/neo/rabbit/topic/TopicSender.java

@@ -0,0 +1,33 @@
+package com.neo.rabbit.topic;
+
+import org.springframework.amqp.core.AmqpTemplate;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+import java.util.Date;
+
+@Component
+public class TopicSender {
+
+	@Autowired
+	private AmqpTemplate rabbitTemplate;
+
+	public void send() {
+		String context = "hi, i am message all";
+		System.out.println("Sender : " + context);
+		this.rabbitTemplate.convertAndSend("topicExchange", "topic.1", context);
+	}
+
+	public void send1() {
+		String context = "hi, i am message 1";
+		System.out.println("Sender : " + context);
+		this.rabbitTemplate.convertAndSend("topicExchange", "topic.message", context);
+	}
+
+	public void send2() {
+		String context = "hi, i am messages 2";
+		System.out.println("Sender : " + context);
+		this.rabbitTemplate.convertAndSend("topicExchange", "topic.messages", context);
+	}
+
+}

+ 2 - 2
spring-boot-rabbitmq-simple/src/main/resources/application.properties → spring-boot-rabbitmq/src/main/resources/application.properties

@@ -1,6 +1,6 @@
-spring.application.name=spirng-boot-rabbitmq
+spring.application.name=spirng-boot-rabbitmq-example
 
-spring.rabbitmq.host=localhost
+spring.rabbitmq.host=192.168.0.86
 spring.rabbitmq.port=5672
 spring.rabbitmq.username=admin
 spring.rabbitmq.password=123456

+ 0 - 0
spring-boot-rabbitmq-simple/src/test/java/com/neo/ApplicationTests.java → spring-boot-rabbitmq/src/test/java/com/neo/ApplicationTests.java


+ 24 - 0
spring-boot-rabbitmq/src/test/java/com/neo/rabbitmq/FanoutTest.java

@@ -0,0 +1,24 @@
+package com.neo.rabbitmq;
+
+import com.neo.rabbit.fanout.FanoutSender;
+import com.neo.rabbit.topic.TopicSender;
+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 FanoutTest {
+
+	@Autowired
+	private FanoutSender sender;
+
+	@Test
+	public void fanoutSender() throws Exception {
+		sender.send();
+	}
+
+
+}

+ 2 - 11
spring-boot-rabbitmq-simple/src/test/java/com/neo/rabbitmq/RabbitMqTest.java → spring-boot-rabbitmq/src/test/java/com/neo/rabbitmq/HelloTest.java

@@ -1,8 +1,6 @@
 package com.neo.rabbitmq;
 
-import com.neo.rabbit.HelloSender;
-import com.neo.rabbit.NeoReceiver;
-import com.neo.rabbit.NeoSender;
+import com.neo.rabbit.hello.HelloSender;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -11,22 +9,15 @@ import org.springframework.test.context.junit4.SpringRunner;
 
 @RunWith(SpringRunner.class)
 @SpringBootTest
-public class RabbitMqTest {
+public class HelloTest {
 
 	@Autowired
 	private HelloSender helloSender;
 
-	@Autowired
-	private NeoSender neoSender;
-
 	@Test
 	public void hello() throws Exception {
 		helloSender.send();
 	}
 
-	@Test
-	public void neo() throws Exception {
-		neoSender.send();
-	}
 
 }

+ 35 - 0
spring-boot-rabbitmq/src/test/java/com/neo/rabbitmq/ManyTest.java

@@ -0,0 +1,35 @@
+package com.neo.rabbitmq;
+
+import com.neo.rabbit.many.NeoSender;
+import com.neo.rabbit.many.NeoSender2;
+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 ManyTest {
+	@Autowired
+	private NeoSender neoSender;
+
+	@Autowired
+	private NeoSender2 neoSender2;
+
+	@Test
+	public void oneToMany() throws Exception {
+		for (int i=0;i<100;i++){
+			neoSender.send(i);
+		}
+	}
+
+	@Test
+	public void manyToMany() throws Exception {
+		for (int i=0;i<100;i++){
+			neoSender.send(i);
+			neoSender2.send(i);
+		}
+	}
+
+}

+ 26 - 0
spring-boot-rabbitmq/src/test/java/com/neo/rabbitmq/ObjectTest.java

@@ -0,0 +1,26 @@
+package com.neo.rabbitmq;
+
+import com.neo.model.User;
+import com.neo.rabbit.object.ObjectSender;
+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 ObjectTest {
+
+	@Autowired
+	private ObjectSender sender;
+
+	@Test
+	public void sendOject() throws Exception {
+		User user=new User();
+		user.setName("neo");
+		user.setPass("123456");
+		sender.send(user);
+	}
+
+}

+ 32 - 0
spring-boot-rabbitmq/src/test/java/com/neo/rabbitmq/TopicTest.java

@@ -0,0 +1,32 @@
+package com.neo.rabbitmq;
+
+import com.neo.rabbit.topic.TopicSender;
+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 TopicTest {
+
+	@Autowired
+	private TopicSender sender;
+
+	@Test
+	public void topic() throws Exception {
+		sender.send();
+	}
+
+	@Test
+	public void topic1() throws Exception {
+		sender.send1();
+	}
+
+	@Test
+	public void topic2() throws Exception {
+		sender.send2();
+	}
+
+}