Rabbitmq发送消息Message的两种写法
String msg = RandomStringUtils.randomAlphanumeric(6); //常规写法 MessageProperties messageProperties = new MessageProperties(); messageProperties.setMessageId(UUID.randomUUID().toString()); messageProperties.setContentType(CONTENT_TYPE_TEXT_PLAIN); messageProperties.setContentEncoding("utf8"); Message message = new Message(msg.getBytes(), messageProperties); rabbitTemplate.convertAndSend(topicExchange,"demo.email.x",message); //lambda 表达式写法 @FunctionalInterface public interface MessagePostProcessor { Message postProcessMessage(Message var1) throws AmqpException; default Message postProcessMessage(Message message, Correlation correlation) { return this.postProcessMessage(message); } } //MessagePostProcessor 是函数接口,可以上lambda rabbitTemplate.convertAndSend(topicExchange,"demo.email.x",msg,messages->{ messages.getMessageProperties().setMessageId(UUID.randomUUID().toString()); messages.getMessageProperties().setContentType(CONTENT_TYPE_TEXT_PLAIN); messages.getMessageProperties().setContentEncoding(CharEncoding.UTF_8); return messages; });
作者:null-npe 出处:https://www.cnblogs.com/npe 由于作者个人水平有限,如果文中有什么错误,欢迎指出。以免更多的人被误导。 |