У меня есть служба, которая отправляет сообщение rabbitmq, и потребитель делает некоторые манипуляции с сообщением и ставит их в очередь.
Я могу успешно отправить rabbitmq исходное сообщение, но проблема в том, что я не могу повторно отправить rabbitmq любое использованное сообщение, если сообщение требует изменений.
@Service
public class MyService {
/**
* The template
*/
@Autowired
private AmqpTemplate amqpTemplate;
private final RabbitMQConfig config;
public void send(String message) {
try {
amqpTemplate.convertAndSend("ex", "r", message);
}
catch (Exception e) {
e.printStackTrace();
}
}
}
Тогда в моем конфиге у меня есть настройки:
@Bean
public ConnectionFactory connectionFactory () {/ * рабочий код * /}
@Bean
public Queue myQueue() { return new Queue("my-queue");
// etc...
@Bean
MessageListenerAdapter myListenerAdapter(MyListener listener) {
return new MessageListenerAdapter(listener, "listener");
}
@Bean
MyListener myListener() {
return new MyListener();
}
тогда ...
public class MyListener {
public void receiveMessage(String message) {
// ... some code
// if message requires modification, then repush
new Repush().push(message);
}
}
Я пытался создать новый класс с новым, но myService всегда пусто
@Component
public class Repush {
@Autowired
private MyService myService;
public void push(String message) {
// myService is null at this point
}
}