Untitled

mail@pastecode.io avatar
unknown
plain_text
9 days ago
1.5 kB
1
Indexable
Never
If you want to set message priority without using `javax.jms` at all, and you are using Spring's `JmsTemplate`, you can do so by relying on Spring's abstractions. Here's an example using Spring's `MessagePostProcessor`:

```java
import org.springframework.jms.core.JmsTemplate;
import org.springframework.jms.core.MessageCreator;
import org.springframework.jms.core.MessagePostProcessor;

public class YourJmsMessageSender {

    private JmsTemplate jmsTemplate;

    // Injected via setter or constructor injection
    public void setJmsTemplate(JmsTemplate jmsTemplate) {
        this.jmsTemplate = jmsTemplate;
    }

    public void sendMessageWithPriority(String destination, String message, int priority) {
        jmsTemplate.convertAndSend(destination, message, new MessagePostProcessor() {
            @Override
            public javax.jms.Message postProcessMessage(javax.jms.Message message) throws javax.jms.JMSException {
                message.setJMSPriority(priority);
                return message;
            }
        });
    }
}
```

In this example:

- `jmsTemplate.convertAndSend(destination, message, messagePostProcessor)` is used to send a message using Spring's `JmsTemplate`.
- `MessagePostProcessor` is implemented as an anonymous class, allowing you to set the message priority within the `postProcessMessage` method.

This way, you can set the message priority without directly using `javax.jms` interfaces and leveraging Spring's higher-level abstractions.
Leave a Comment