Browse Source

add rabbitmq

ityouknow 8 years ago
parent
commit
1422d13c81

+ 3 - 0
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-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简单应用
+
+
 
 
 
 
 
 

+ 60 - 0
spring-boot-rabbitmq-simple/pom.xml

@@ -0,0 +1,60 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<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/xsd/maven-4.0.0.xsd">
+	<modelVersion>4.0.0</modelVersion>
+
+	<groupId>com.neo</groupId>
+	<artifactId>spring-boot-rabbitmq-simple</artifactId>
+	<version>1.0.0</version>
+	<packaging>jar</packaging>
+
+	<name>spring-boot-rabbitmq-simple</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>
+		<relativePath/> <!-- lookup parent from repository -->
+	</parent>
+
+	<properties>
+		<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+		<java.version>1.8</java.version>
+	</properties>
+
+	<dependencies>
+		<dependency>
+			<groupId>org.springframework.boot</groupId>
+			<artifactId>spring-boot-starter</artifactId>
+		</dependency>
+		<dependency>
+			<groupId>org.springframework.boot</groupId>
+			<artifactId>spring-boot-starter-test</artifactId>
+			<scope>test</scope>
+		</dependency>
+		<dependency>
+			<groupId>org.springframework.boot</groupId>
+			<artifactId>spring-boot-starter-amqp</artifactId>
+		</dependency>
+	     <dependency>
+	        <groupId>org.springframework.boot</groupId>
+	        <artifactId>spring-boot-devtools</artifactId>
+	        <optional>true</optional>
+		</dependency>
+	</dependencies>
+	
+	<build>
+		<plugins>
+			<plugin>
+				<groupId>org.springframework.boot</groupId>
+				<artifactId>spring-boot-maven-plugin</artifactId>
+				<configuration>
+	                <fork>true</fork>
+	            </configuration>
+			</plugin>
+		</plugins>
+	</build>
+	
+
+</project>

+ 12 - 0
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);
+	}
+}

+ 19 - 0
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);
+    }
+
+}

+ 22 - 0
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);
+	}
+
+}

+ 16 - 0
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);
+    }
+
+}

+ 21 - 0
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);
+	}
+
+}

+ 23 - 0
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");
+    }
+
+
+}

+ 6 - 0
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

+ 17 - 0
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");
+	}
+
+}

+ 32 - 0
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();
+	}
+
+}