pom.xml | ●●●●● patch | view | raw | blame | history | |
src/main/java/com/xcong/excoin/configurations/RabbitMqConfig.java | ●●●●● patch | view | raw | blame | history | |
src/main/java/com/xcong/excoin/configurations/properties/CustomRabbitProperties.java | ●●●●● patch | view | raw | blame | history | |
src/main/java/com/xcong/excoin/rabbit/consumer/TestConsumer.java | ●●●●● patch | view | raw | blame | history | |
src/main/java/com/xcong/excoin/rabbit/producer/TestProducer.java | ●●●●● patch | view | raw | blame | history | |
src/main/resources/application.yml | ●●●●● patch | view | raw | blame | history | |
src/test/java/com/xcong/excoin/RSATest.java | ●●●●● patch | view | raw | blame | history | |
src/test/java/com/xcong/excoin/RabbitMqTest.java | ●●●●● patch | view | raw | blame | history |
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> src/main/java/com/xcong/excoin/configurations/RabbitMqConfig.java
New file @@ -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); } } src/main/java/com/xcong/excoin/configurations/properties/CustomRabbitProperties.java
New file @@ -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; } src/main/java/com/xcong/excoin/rabbit/consumer/TestConsumer.java
New file @@ -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); } } src/main/java/com/xcong/excoin/rabbit/producer/TestProducer.java
New file @@ -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); } } } 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 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); } } src/test/java/com/xcong/excoin/RabbitMqTest.java
New file @@ -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"); } }