diff --git a/README.md b/README.md index 057deec6377f77e17785dd83681cd9a1df9e2598..dd5b2324e03c39a3dba4431e784bfc7832961102 100644 --- a/README.md +++ b/README.md @@ -12,6 +12,9 @@ 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简单应用 + + diff --git a/spring-boot-rabbitmq-simple/pom.xml b/spring-boot-rabbitmq-simple/pom.xml new file mode 100644 index 0000000000000000000000000000000000000000..890f266d643610bef39f56617f70d2ad861302e4 --- /dev/null +++ b/spring-boot-rabbitmq-simple/pom.xml @@ -0,0 +1,60 @@ + + + 4.0.0 + + com.neo + spring-boot-rabbitmq-simple + 1.0.0 + jar + + spring-boot-rabbitmq-simple + Demo project for Spring Boot and rabbitmq + + + org.springframework.boot + spring-boot-starter-parent + 1.4.1.RELEASE + + + + + UTF-8 + 1.8 + + + + + org.springframework.boot + spring-boot-starter + + + org.springframework.boot + spring-boot-starter-test + test + + + org.springframework.boot + spring-boot-starter-amqp + + + org.springframework.boot + spring-boot-devtools + true + + + + + + + org.springframework.boot + spring-boot-maven-plugin + + true + + + + + + + diff --git a/spring-boot-rabbitmq-simple/src/main/java/com/neo/Application.java b/spring-boot-rabbitmq-simple/src/main/java/com/neo/Application.java new file mode 100644 index 0000000000000000000000000000000000000000..6cda50c81146e8f2bae757a14009b7431123e52a --- /dev/null +++ b/spring-boot-rabbitmq-simple/src/main/java/com/neo/Application.java @@ -0,0 +1,12 @@ +package com.neo; + +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; + +@SpringBootApplication +public class Application { + + public static void main(String[] args) { + SpringApplication.run(Application.class, args); + } +} diff --git a/spring-boot-rabbitmq-simple/src/main/java/com/neo/rabbit/HelloReceiver.java b/spring-boot-rabbitmq-simple/src/main/java/com/neo/rabbit/HelloReceiver.java new file mode 100644 index 0000000000000000000000000000000000000000..7a5fe935b36cfc9d3cde4d9820b03a67147a0778 --- /dev/null +++ b/spring-boot-rabbitmq-simple/src/main/java/com/neo/rabbit/HelloReceiver.java @@ -0,0 +1,19 @@ +package com.neo.rabbit; + +import org.springframework.amqp.rabbit.annotation.RabbitHandler; +import org.springframework.amqp.rabbit.annotation.RabbitListener; +import org.springframework.cache.annotation.Cacheable; +import org.springframework.stereotype.Component; + +import java.util.Date; + +@Component +@RabbitListener(queues = "hello") +public class HelloReceiver { + + @RabbitHandler + public void process(String hello) { + System.out.println("Receiver : " + hello); + } + +} diff --git a/spring-boot-rabbitmq-simple/src/main/java/com/neo/rabbit/HelloSender.java b/spring-boot-rabbitmq-simple/src/main/java/com/neo/rabbit/HelloSender.java new file mode 100644 index 0000000000000000000000000000000000000000..547050c5b5e5e076919fa61d241059ec24bf915e --- /dev/null +++ b/spring-boot-rabbitmq-simple/src/main/java/com/neo/rabbit/HelloSender.java @@ -0,0 +1,22 @@ +package com.neo.rabbit; + +import org.springframework.amqp.core.AmqpTemplate; +import org.springframework.amqp.rabbit.core.RabbitTemplate; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +import java.util.Date; + +@Component +public class HelloSender { + + @Autowired + private AmqpTemplate rabbitTemplate; + + public void send() { + String context = "hello " + new Date(); + System.out.println("Sender : " + context); + this.rabbitTemplate.convertAndSend("hello", context); + } + +} \ No newline at end of file diff --git a/spring-boot-rabbitmq-simple/src/main/java/com/neo/rabbit/NeoReceiver.java b/spring-boot-rabbitmq-simple/src/main/java/com/neo/rabbit/NeoReceiver.java new file mode 100644 index 0000000000000000000000000000000000000000..d615ba5e538223c5ece99e4a6b1275a73189aeb4 --- /dev/null +++ b/spring-boot-rabbitmq-simple/src/main/java/com/neo/rabbit/NeoReceiver.java @@ -0,0 +1,16 @@ +package com.neo.rabbit; + +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 NeoReceiver { + + @RabbitHandler + public void process(String neo) { + System.out.println("Receiver : " + neo); + } + +} diff --git a/spring-boot-rabbitmq-simple/src/main/java/com/neo/rabbit/NeoSender.java b/spring-boot-rabbitmq-simple/src/main/java/com/neo/rabbit/NeoSender.java new file mode 100644 index 0000000000000000000000000000000000000000..6841018188eee5f26c2552d8a8f95485e5b0cea0 --- /dev/null +++ b/spring-boot-rabbitmq-simple/src/main/java/com/neo/rabbit/NeoSender.java @@ -0,0 +1,21 @@ +package com.neo.rabbit; + +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); + this.rabbitTemplate.convertAndSend("neo", context); + } + +} \ No newline at end of file diff --git a/spring-boot-rabbitmq-simple/src/main/java/com/neo/rabbit/RabbitConfig.java b/spring-boot-rabbitmq-simple/src/main/java/com/neo/rabbit/RabbitConfig.java new file mode 100644 index 0000000000000000000000000000000000000000..28b60537113fe2af20302ff87a713e1ff076e422 --- /dev/null +++ b/spring-boot-rabbitmq-simple/src/main/java/com/neo/rabbit/RabbitConfig.java @@ -0,0 +1,23 @@ +package com.neo.rabbit; + +import org.springframework.amqp.core.Queue; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; + + +@Configuration +public class RabbitConfig { + + @Bean + public Queue helloQueue() { + return new Queue("hello"); + } + + + @Bean + public Queue neoQueue() { + return new Queue("neo"); + } + + +} diff --git a/spring-boot-rabbitmq-simple/src/main/resources/application.properties b/spring-boot-rabbitmq-simple/src/main/resources/application.properties new file mode 100644 index 0000000000000000000000000000000000000000..e9897cd2c36b3f8f906d122e4cebb045c1b77f46 --- /dev/null +++ b/spring-boot-rabbitmq-simple/src/main/resources/application.properties @@ -0,0 +1,6 @@ +spring.application.name=spirng-boot-rabbitmq + +spring.rabbitmq.host=localhost +spring.rabbitmq.port=5672 +spring.rabbitmq.username=admin +spring.rabbitmq.password=123456 diff --git a/spring-boot-rabbitmq-simple/src/test/java/com/neo/ApplicationTests.java b/spring-boot-rabbitmq-simple/src/test/java/com/neo/ApplicationTests.java new file mode 100644 index 0000000000000000000000000000000000000000..569db81400461479d865ab7370c5ddd4c060158e --- /dev/null +++ b/spring-boot-rabbitmq-simple/src/test/java/com/neo/ApplicationTests.java @@ -0,0 +1,17 @@ +package com.neo; + +import org.junit.Test; +import org.junit.runner.RunWith; +import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.test.context.junit4.SpringRunner; + +@RunWith(SpringRunner.class) +@SpringBootTest +public class ApplicationTests { + + @Test + public void contextLoads() { + System.out.println("hello world"); + } + +} diff --git a/spring-boot-rabbitmq-simple/src/test/java/com/neo/rabbitmq/RabbitMqTest.java b/spring-boot-rabbitmq-simple/src/test/java/com/neo/rabbitmq/RabbitMqTest.java new file mode 100644 index 0000000000000000000000000000000000000000..4634888dffd933605b36c8c14fdaedb2de8ef488 --- /dev/null +++ b/spring-boot-rabbitmq-simple/src/test/java/com/neo/rabbitmq/RabbitMqTest.java @@ -0,0 +1,32 @@ +package com.neo.rabbitmq; + +import com.neo.rabbit.HelloSender; +import com.neo.rabbit.NeoReceiver; +import com.neo.rabbit.NeoSender; +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 RabbitMqTest { + + @Autowired + private HelloSender helloSender; + + @Autowired + private NeoSender neoSender; + + @Test + public void hello() throws Exception { + helloSender.send(); + } + + @Test + public void neo() throws Exception { + neoSender.send(); + } + +} \ No newline at end of file