繁体   English   中英

使用 Spring 引导向 JMS 队列发送消息

[英]Send message to a JMS queue using Spring Boot

我是 Spring JMS 的新手。 我的应用程序是使用 Spring Boot 开发的,并部署在 JBoss EAP 7.2.0 中。 我有一个远程队列,它是一个 Active MQ Artemis 队列,它也嵌入在 JBoss EAP 7.2.0 中。 谁能建议我如何使用 Spring Boot 的 JmsTemplate 向远程 JMS 队列发送消息? 基本上我不知道应该如何定义远程 connectionFactory 以连接到远程队列。

  1. 当您的应用程序部署在应用程序服务器中时,将以下内容添加到应用程序属性
  spring.jms.jndi-name=java:/<your connection factory name for artemis>
  1. 添加artemis依赖并让spring启动自动配置jmsTemplate
   <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-artemis</artifactId>
   </dependency>
  1. 自动装配 jmsTemplate 并发送消息
@Component
public class MyMessageSender {

        @Autowired
        JmsTemplate jmsTemplate;


        public void send(String msg){
                jmsTemplate.convertAndSend("my.queue.name", msg);
        }
}
  1. 或者,您可以配置消息转换器并将 pojos 作为消息发送,并让 spring 负责将其转换为 json。 例如
    @Bean // Serialize message content to json using TextMessage
    public MessageConverter jacksonJmsMessageConverter() {
        MappingJackson2MessageConverter converter = new MappingJackson2MessageConverter();
        converter.setTargetType(MessageType.TEXT);
        converter.setTypeIdPropertyName("_type");
        return converter;
    }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM