From 09386afca773e3a6f99c5318d123b75ffeb7964e Mon Sep 17 00:00:00 2001 From: Helius <wangdoubleone@gmail.com> Date: Mon, 25 May 2020 18:28:48 +0800 Subject: [PATCH] init rabbitmq --- src/main/java/com/xcong/excoin/rabbit/producer/TestProducer.java | 42 ++++++++++ src/main/java/com/xcong/excoin/rabbit/consumer/TestConsumer.java | 21 +++++ src/main/java/com/xcong/excoin/configurations/properties/CustomRabbitProperties.java | 19 ++++ src/main/java/com/xcong/excoin/configurations/RabbitMqConfig.java | 63 +++++++++++++++ src/test/java/com/xcong/excoin/RabbitMqTest.java | 24 ++++++ pom.xml | 11 ++ src/main/resources/application.yml | 15 +++ src/test/java/com/xcong/excoin/RSATest.java | 7 + 8 files changed, 200 insertions(+), 2 deletions(-) diff --git a/pom.xml b/pom.xml index 20f2f96..eaea49e 100644 --- a/pom.xml +++ b/pom.xml @@ -27,6 +27,8 @@ <mapstruct.version>1.3.1.Final</mapstruct.version> <hutool.version>5.3.1</hutool.version> <fastjson.version>1.2.61</fastjson.version> + <netty.version>4.1.33.Final</netty.version> + <dom4j.version>1.6.1</dom4j.version> </properties> <dependencies> @@ -43,6 +45,11 @@ <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-security</artifactId> + </dependency> + + <dependency> + <groupId>org.springframework.boot</groupId> + <artifactId>spring-boot-starter-amqp</artifactId> </dependency> <!-- <dependency>--> @@ -166,14 +173,14 @@ <dependency> <groupId>dom4j</groupId> <artifactId>dom4j</artifactId> - <version>1.6.1</version> + <version>${dom4j.version}</version> </dependency> <dependency> <groupId>io.netty</groupId> <artifactId>netty-all</artifactId> - <version>4.1.33.Final</version> + <version>${netty.version}</version> </dependency> </dependencies> diff --git a/src/main/java/com/xcong/excoin/configurations/RabbitMqConfig.java b/src/main/java/com/xcong/excoin/configurations/RabbitMqConfig.java new file mode 100644 index 0000000..eec7531 --- /dev/null +++ b/src/main/java/com/xcong/excoin/configurations/RabbitMqConfig.java @@ -0,0 +1,63 @@ +package com.xcong.excoin.configurations; + +import com.xcong.excoin.configurations.properties.CustomRabbitProperties; +import org.springframework.amqp.core.Binding; +import org.springframework.amqp.core.BindingBuilder; +import org.springframework.amqp.core.DirectExchange; +import org.springframework.amqp.core.Queue; +import org.springframework.amqp.rabbit.connection.ConnectionFactory; +import org.springframework.amqp.rabbit.core.RabbitTemplate; +import org.springframework.beans.factory.config.ConfigurableBeanFactory; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.context.annotation.Scope; + +import javax.annotation.Resource; + +/** + * @author wzy + * @date 2020-05-25 + **/ +@Configuration +public class RabbitMqConfig { + + public static final String EXCHANGE_ONE = "excoin-exchange-one"; + + public static final String QUEUE_TEST = "test-queue"; + + public static final String ROUTING_KEY_TEST = "test-routingKey"; + + @Resource + private ConnectionFactory connectionFactory; + +// @Bean +// public ConnectionFactory connectionFactory() { +// CachingConnectionFactory connectionFactory = new CachingConnectionFactory(customRabbitProperties.getHost(), customRabbitProperties.getPort()); +// connectionFactory.setUsername(customRabbitProperties.getUsername()); +// connectionFactory.setPassword(customRabbitProperties.getPassword()); +// connectionFactory.setPublisherConfirmType(CachingConnectionFactory.ConfirmType.CORRELATED); +// return connectionFactory; +// } + + @Bean + @Scope(ConfigurableBeanFactory.SCOPE_PROTOTYPE) + public RabbitTemplate rabbitTemplate() { + return new RabbitTemplate(connectionFactory); + } + + @Bean + public DirectExchange defaultExchange() { + return new DirectExchange(EXCHANGE_ONE); + } + + @Bean + public Queue testQueue() { + return new Queue(QUEUE_TEST, true); + } + + @Bean + public Binding binding() { + return BindingBuilder.bind(testQueue()).to(defaultExchange()).with(ROUTING_KEY_TEST); + } + +} diff --git a/src/main/java/com/xcong/excoin/configurations/properties/CustomRabbitProperties.java b/src/main/java/com/xcong/excoin/configurations/properties/CustomRabbitProperties.java new file mode 100644 index 0000000..47ddc4c --- /dev/null +++ b/src/main/java/com/xcong/excoin/configurations/properties/CustomRabbitProperties.java @@ -0,0 +1,19 @@ +package com.xcong.excoin.configurations.properties; + +import lombok.Data; +import org.springframework.boot.context.properties.ConfigurationProperties; +import org.springframework.context.annotation.Configuration; + +/** + * @author wzy + * @date 2020-05-25 + **/ +@Data +@Configuration +@ConfigurationProperties(prefix = "custom.rabbitmq") +public class CustomRabbitProperties { + private String host; + private int port; + private String username; + private String password; +} diff --git a/src/main/java/com/xcong/excoin/rabbit/consumer/TestConsumer.java b/src/main/java/com/xcong/excoin/rabbit/consumer/TestConsumer.java new file mode 100644 index 0000000..aea3c07 --- /dev/null +++ b/src/main/java/com/xcong/excoin/rabbit/consumer/TestConsumer.java @@ -0,0 +1,21 @@ +package com.xcong.excoin.rabbit.consumer; + +import com.xcong.excoin.configurations.RabbitMqConfig; +import lombok.extern.slf4j.Slf4j; +import org.springframework.amqp.rabbit.annotation.RabbitListener; +import org.springframework.stereotype.Component; + +/** + * @author wzy + * @date 2020-05-25 + **/ +@Slf4j +@Component +public class TestConsumer { + + + @RabbitListener(queues = RabbitMqConfig.QUEUE_TEST) + public void doSomething(String content) { + log.info("#---->{}#", content); + } +} diff --git a/src/main/java/com/xcong/excoin/rabbit/producer/TestProducer.java b/src/main/java/com/xcong/excoin/rabbit/producer/TestProducer.java new file mode 100644 index 0000000..00ffd52 --- /dev/null +++ b/src/main/java/com/xcong/excoin/rabbit/producer/TestProducer.java @@ -0,0 +1,42 @@ +package com.xcong.excoin.rabbit.producer; + +import cn.hutool.core.util.IdUtil; +import com.xcong.excoin.configurations.RabbitMqConfig; +import lombok.extern.slf4j.Slf4j; +import org.springframework.amqp.rabbit.connection.CorrelationData; +import org.springframework.amqp.rabbit.core.RabbitTemplate; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +/** + * @author wzy + * @date 2020-05-25 + **/ +@Slf4j +@Component +public class TestProducer implements RabbitTemplate.ConfirmCallback { + + private RabbitTemplate rabbitTemplate; + + @Autowired + public TestProducer(RabbitTemplate rabbitTemplate) { + this.rabbitTemplate = rabbitTemplate; + rabbitTemplate.setConfirmCallback(this); + } + + public void sendTestMsg(String content) { + CorrelationData correlationData = new CorrelationData(IdUtil.simpleUUID()); + rabbitTemplate.convertAndSend(RabbitMqConfig.EXCHANGE_ONE, RabbitMqConfig.ROUTING_KEY_TEST, content, correlationData); + } + + + @Override + public void confirm(CorrelationData correlationData, boolean ack, String cause) { + log.info("#----->{}#", correlationData); + if (ack) { + log.info("success"); + } else { + log.info("--->{}", cause); + } + } +} diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml index 820acc1..8a849c0 100644 --- a/src/main/resources/application.yml +++ b/src/main/resources/application.yml @@ -69,6 +69,21 @@ min-idle: 8 ## 连接超时时间(毫秒) timeout: 30000 + rabbitmq: + host: 120.27.238.55 + port: 5672 + username: ct_rabbit + password: 123456 + publisher-confirm-type: correlated + + +#custom: +# rabbitmq: +# host: 120.27.238.55 +# port: 5672 +# username: ct_rabbit +# password: 123456 + mybatis-plus: mapper-locations: classpath:mapper/**/*.xml diff --git a/src/test/java/com/xcong/excoin/RSATest.java b/src/test/java/com/xcong/excoin/RSATest.java index 4d4d3b6..45c6488 100644 --- a/src/test/java/com/xcong/excoin/RSATest.java +++ b/src/test/java/com/xcong/excoin/RSATest.java @@ -13,6 +13,7 @@ import org.junit.jupiter.api.Test; import org.springframework.boot.test.context.SpringBootTest; +import java.math.BigDecimal; import java.security.KeyPair; /** @@ -101,4 +102,10 @@ String md5str = SecureUtil.md5("123456"); log.info("{}", md5str); } + + @Test + public void bigdecimalTest() { + BigDecimal bigDecimal = new BigDecimal("123.12345678").setScale(4, BigDecimal.ROUND_DOWN); + log.info("--->{}", bigDecimal); + } } diff --git a/src/test/java/com/xcong/excoin/RabbitMqTest.java b/src/test/java/com/xcong/excoin/RabbitMqTest.java new file mode 100644 index 0000000..82b668b --- /dev/null +++ b/src/test/java/com/xcong/excoin/RabbitMqTest.java @@ -0,0 +1,24 @@ +package com.xcong.excoin; + +import com.xcong.excoin.rabbit.producer.TestProducer; +import org.junit.jupiter.api.Test; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.test.context.SpringBootTest; + +import javax.annotation.Resource; + +/** + * @author wzy + * @date 2020-05-25 + **/ +@SpringBootTest +public class RabbitMqTest { + + @Autowired + private TestProducer testProducer; + + @Test + public void sendTestMsg() { + testProducer.sendTestMsg("this is test msg"); + } +} -- Gitblit v1.9.1