From 190c8ef703fc5e7981d5eb3d87e29643571acbff Mon Sep 17 00:00:00 2001 From: fxb Date: Tue, 31 Jul 2018 21:46:57 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9Ejmsdemo?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 2 +- jms_demo/pom.xml | 54 +++++++++++++++++++ .../com/fxb/jms_demo/JmsDemoApplication.java | 12 +++++ .../com/fxb/jms_demo/consumer/Comsumer.java | 38 +++++++++++++ .../com/fxb/jms_demo/jmsConfig/Config.java | 27 ++++++++++ .../com/fxb/jms_demo/publisher/Producer.java | 40 ++++++++++++++ jms_demo/src/main/resources/application.yml | 6 +++ .../fxb/jms_demo/JmsDemoApplicationTests.java | 16 ++++++ 8 files changed, 194 insertions(+), 1 deletion(-) create mode 100644 jms_demo/pom.xml create mode 100644 jms_demo/src/main/java/com/fxb/jms_demo/JmsDemoApplication.java create mode 100644 jms_demo/src/main/java/com/fxb/jms_demo/consumer/Comsumer.java create mode 100644 jms_demo/src/main/java/com/fxb/jms_demo/jmsConfig/Config.java create mode 100644 jms_demo/src/main/java/com/fxb/jms_demo/publisher/Producer.java create mode 100644 jms_demo/src/main/resources/application.yml create mode 100644 jms_demo/src/test/java/com/fxb/jms_demo/JmsDemoApplicationTests.java diff --git a/.gitignore b/.gitignore index c69c8f2..cf0b8e0 100644 --- a/.gitignore +++ b/.gitignore @@ -34,7 +34,7 @@ hs_err_pid* .sts4-cache ### IntelliJ IDEA ### -.idea +*.idea *.iws *.iml *.ipr diff --git a/jms_demo/pom.xml b/jms_demo/pom.xml new file mode 100644 index 0000000..2351f2e --- /dev/null +++ b/jms_demo/pom.xml @@ -0,0 +1,54 @@ + + + 4.0.0 + + com.fxb + jms_demo + 0.0.1-SNAPSHOT + jar + + jms_demo + Demo project for Spring Boot + + + org.springframework.boot + spring-boot-starter-parent + 2.0.3.RELEASE + + + + + UTF-8 + UTF-8 + 1.8 + + + + + org.springframework.boot + spring-boot-starter-activemq + + + org.springframework.boot + spring-boot-starter-web + + + + org.springframework.boot + spring-boot-starter-test + test + + + + + + + org.springframework.boot + spring-boot-maven-plugin + + + + + + diff --git a/jms_demo/src/main/java/com/fxb/jms_demo/JmsDemoApplication.java b/jms_demo/src/main/java/com/fxb/jms_demo/JmsDemoApplication.java new file mode 100644 index 0000000..73a0718 --- /dev/null +++ b/jms_demo/src/main/java/com/fxb/jms_demo/JmsDemoApplication.java @@ -0,0 +1,12 @@ +package com.fxb.jms_demo; + +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; + +@SpringBootApplication +public class JmsDemoApplication { + + public static void main(String[] args) { + SpringApplication.run(JmsDemoApplication.class, args); + } +} diff --git a/jms_demo/src/main/java/com/fxb/jms_demo/consumer/Comsumer.java b/jms_demo/src/main/java/com/fxb/jms_demo/consumer/Comsumer.java new file mode 100644 index 0000000..7e5e0da --- /dev/null +++ b/jms_demo/src/main/java/com/fxb/jms_demo/consumer/Comsumer.java @@ -0,0 +1,38 @@ +package com.fxb.jms_demo.consumer; + +import org.springframework.jms.annotation.JmsListener; +import org.springframework.stereotype.Component; + +/** + * Created with IntelliJ IDEA. + * Description: 模拟消息队列接受者 + * User: ${fxb} + * Email: fanxb.tl@gmail.com + * Date: 2018-07-20 + */ +@Component +public class Comsumer { + //接受消息队列1消息 + @JmsListener(destination = "active.queue1") + public void readActiveQueue11(String message){ + System.out.println(1+message); + } + + //接受消息队列1消息 + @JmsListener(destination = "active.queue1") + public void readActiveQueue12(String message){ + System.out.println(2+message); + } + + //接受消息队列2消息 + @JmsListener(destination = "active.queue2") + public void readActiveQueue21(String message){ + System.out.println(1+message); + } + + //接受消息队列2消息 + @JmsListener(destination = "active.queue2") + public void readActiveQueue22(String message){ + System.out.println(2+message); + } +} diff --git a/jms_demo/src/main/java/com/fxb/jms_demo/jmsConfig/Config.java b/jms_demo/src/main/java/com/fxb/jms_demo/jmsConfig/Config.java new file mode 100644 index 0000000..31f9384 --- /dev/null +++ b/jms_demo/src/main/java/com/fxb/jms_demo/jmsConfig/Config.java @@ -0,0 +1,27 @@ +package com.fxb.jms_demo.jmsConfig; + +import org.apache.activemq.command.ActiveMQQueue; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; + +import javax.jms.Queue; + +/** + * Created with IntelliJ IDEA. + * Description: + * User: ${fxb} + * Email: fanxb.tl@gmail.com + * Date: 2018-07-20 + */ +@Configuration +public class Config { + @Bean(name = "queue2") + public Queue queue2(){ + return new ActiveMQQueue("active.queue2"); + } + + @Bean(name = "queue1") + public Queue queue1(){ + return new ActiveMQQueue("active.queue1"); + } +} diff --git a/jms_demo/src/main/java/com/fxb/jms_demo/publisher/Producer.java b/jms_demo/src/main/java/com/fxb/jms_demo/publisher/Producer.java new file mode 100644 index 0000000..9be5615 --- /dev/null +++ b/jms_demo/src/main/java/com/fxb/jms_demo/publisher/Producer.java @@ -0,0 +1,40 @@ +package com.fxb.jms_demo.publisher; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Qualifier; +import org.springframework.jms.core.JmsMessagingTemplate; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RestController; + +import javax.jms.Queue; + + +/** + * Created with IntelliJ IDEA. + * Description: + * User: ${fxb} + * Email: fanxb.tl@gmail.com + * Date: 2018-07-20 + */ +@RestController +public class Producer { + @Autowired + private JmsMessagingTemplate jmsMessagingTemplate; + @Autowired() + @Qualifier("queue2") + private Queue queue2; + + @Autowired() + @Qualifier("queue1") + private Queue queue1; + + @GetMapping("/queue2") + public void sendMessage1(String message){ + jmsMessagingTemplate.convertAndSend(queue2,"I'm from queue2:"+message); + } + + @GetMapping("/queue1") + public void sendMessage2(String message){ + jmsMessagingTemplate.convertAndSend(queue1,"I'm from queue1:"+message); + } +} diff --git a/jms_demo/src/main/resources/application.yml b/jms_demo/src/main/resources/application.yml new file mode 100644 index 0000000..6c012af --- /dev/null +++ b/jms_demo/src/main/resources/application.yml @@ -0,0 +1,6 @@ +spring: + activemq: + broker-url: tcp://localhost:61616 + in-memory: true + pool: + enabled: false \ No newline at end of file diff --git a/jms_demo/src/test/java/com/fxb/jms_demo/JmsDemoApplicationTests.java b/jms_demo/src/test/java/com/fxb/jms_demo/JmsDemoApplicationTests.java new file mode 100644 index 0000000..466c037 --- /dev/null +++ b/jms_demo/src/test/java/com/fxb/jms_demo/JmsDemoApplicationTests.java @@ -0,0 +1,16 @@ +package com.fxb.jms_demo; + +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 JmsDemoApplicationTests { + + @Test + public void contextLoads() { + } + +}