Spring Boot 使用Sping Boot 将消息发送到JMS队列

bzzcjhmw  于 12个月前  发布在  Spring
关注(0)|答案(1)|浏览(93)

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

mspsb9vt

mspsb9vt1#

1.在应用程序服务器中部署应用程序时,将以下内容添加到应用程序属性中

spring.jms.jndi-name=java:/<your connection factory name for artemis>

1.添加artemis依赖并让spring Boot 自动配置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.你可以选择配置消息转换器,并将pojo作为消息发送,让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;
    }

相关问题