@Configuration
public class ActiveMQConfig {
@Value("${spring.activemq.broker-url}")
private String brokerUrl;
@Value("${spring.activemq.user}")
private String username;
@Value("${spring.activemq.password}")
private String password;
@Bean
public ActiveMQConnectionFactory activeMQConnectionFactory() {
ActiveMQConnectionFactory factory = new ActiveMQConnectionFactory();
factory.setBrokerURL(brokerUrl);
factory.setUserName(username);
factory.setPassword(password);
return factory;
}
@Bean
public JmsTemplate jmsTemplate(ConnectionFactory connectionFactory) {
JmsTemplate jmsTemplate = new JmsTemplate(connectionFactory);
jmsTemplate.setDeliveryPersistent(true); // 设置消息持久化
jmsTemplate.setExplicitQosEnabled(true); // 开启QoS
jmsTemplate.setPriority(4); // 设置消息优先级
jmsTemplate.setTimeToLive(60000); // 设置消息过期时间
jmsTemplate.setSessionTransacted(true); // 开启事务
jmsTemplate.setSessionAcknowledgeMode(Session.CLIENT_ACKNOWLEDGE); // 设置手动确认机制
jmsTemplate.setDeliveryMode(DeliveryMode.PERSISTENT); // 消息持久化
jmsTemplate.setTimeToLive(60000); // 设置
}
@Bean
public RedeliveryPolicy redeliveryPolicy() {
RedeliveryPolicy redeliveryPolicy = new RedeliveryPolicy();
redeliveryPolicy.setMaximumRedeliveries(3);
}