亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

Spring Boot JMS消息持久化設置

小樊
92
2024-09-11 16:36:01
欄目: 編程語言

在 Spring Boot 中,要實現 JMS 消息的持久化,你需要配置 JMS 連接工廠和消息監聽器容器。以下是一個使用 ActiveMQ 作為消息代理的示例。

  1. 添加 ActiveMQ 依賴:

pom.xml 文件中添加以下依賴:

   <groupId>org.springframework.boot</groupId>
   <artifactId>spring-boot-starter-activemq</artifactId>
</dependency>
  1. 配置 ActiveMQ 連接工廠:

application.propertiesapplication.yml 文件中添加以下配置:

# application.properties
spring.activemq.broker-url=tcp://localhost:61616
spring.activemq.user=admin
spring.activemq.password=admin
spring.activemq.packages.trust-all=true

或者

# application.yml
spring:
  activemq:
    broker-url: tcp://localhost:61616
    user: admin
    password: admin
    packages:
      trust-all: true
  1. 創建 JMS 模板:

創建一個配置類,用于初始化 JMS 模板和消息監聽器容器。

import org.apache.activemq.ActiveMQConnectionFactory;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.jms.config.DefaultJmsListenerContainerFactory;
import org.springframework.jms.core.JmsTemplate;

@Configuration
public class JmsConfig {

    @Value("${spring.activemq.broker-url}")
    private String brokerUrl;

    @Value("${spring.activemq.user}")
    private String user;

    @Value("${spring.activemq.password}")
    private String password;

    @Bean
    public ActiveMQConnectionFactory connectionFactory() {
        ActiveMQConnectionFactory connectionFactory = new ActiveMQConnectionFactory();
        connectionFactory.setBrokerURL(brokerUrl);
        connectionFactory.setUserName(user);
        connectionFactory.setPassword(password);
        return connectionFactory;
    }

    @Bean
    public JmsTemplate jmsTemplate() {
        JmsTemplate jmsTemplate = new JmsTemplate();
        jmsTemplate.setConnectionFactory(connectionFactory());
        jmsTemplate.setDeliveryPersistent(true); // 設置消息持久化
        return jmsTemplate;
    }

    @Bean
    public DefaultJmsListenerContainerFactory jmsListenerContainerFactory() {
        DefaultJmsListenerContainerFactory factory = new DefaultJmsListenerContainerFactory();
        factory.setConnectionFactory(connectionFactory());
        factory.setSessionTransacted(true); // 設置事務支持
        return factory;
    }
}
  1. 創建消息生產者和消費者:

創建一個消息生產者類,用于發送消息:

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jms.core.JmsTemplate;
import org.springframework.stereotype.Component;

@Component
public class MessageProducer {

    @Autowired
    private JmsTemplate jmsTemplate;

    public void sendMessage(String destination, String message) {
        jmsTemplate.convertAndSend(destination, message);
    }
}

創建一個消息消費者類,用于接收消息:

import org.springframework.jms.annotation.JmsListener;
import org.springframework.stereotype.Component;

@Component
public class MessageConsumer {

    @JmsListener(destination = "your.queue")
    public void receiveMessage(String message) {
        System.out.println("Received message: " + message);
    }
}
  1. 發送和接收消息:

在你的應用程序中,使用 MessageProducer 發送消息,并在 MessageConsumer 中接收消息。這樣,你就可以實現 JMS 消息的持久化了。

0
灌阳县| 上虞市| 县级市| 翁牛特旗| 石柱| 蓬溪县| 锡林郭勒盟| 柳江县| 上林县| 昌黎县| 龙口市| 古浪县| 南京市| 麻栗坡县| 沈阳市| 库尔勒市| 微山县| 冷水江市| 剑川县| 台东市| 巨鹿县| 屏南县| 禹州市| 莲花县| 长春市| 北辰区| 中卫市| 南岸区| 锡林浩特市| 凤城市| 吉林市| 洱源县| 湖南省| 保定市| 十堰市| 依兰县| 乌兰察布市| 黔西县| 高尔夫| 罗源县| 桂阳县|