Şöyle yaparız
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-activemq</artifactId> </dependency>
Producer
Örnek
Elimizde şöyle bir kod olsun
import org.apache.activemq.ActiveMQConnectionFactory; @Configuration @EnableJms public class MQConfigHelper { final String BROKER_URL = "tcp://localhost:61616"; //Enter your ActiveMQ password and username final String BROKER_USERNAME = ""; final String BROKER_PASSWORD = ""; @Bean public ActiveMQConnectionFactory activemqConnectionFactory() { ActiveMQConnectionFactory factory = new ActiveMQConnectionFactory(); factory.setTrustAllPackages(true); factory.setBrokerURL(BROKER_URL); factory.setPassword(BROKER_USERNAME); factory.setUserName(BROKER_PASSWORD); return factory; } @Bean public MessageConverter messageConverter() { MappingJackson2MessageConverter converter = new MappingJackson2MessageConverter(); converter.setTargetType(MessageType.TEXT); return converter; } @Bean public JmsTemplate templateConfig() { JmsTemplate jmsTemplate = new JmsTemplate(); jmsTemplate.setConnectionFactory(activemqConnectionFactory()); jmsTemplate.setMessageConverter(messageConverter()); jmsTemplate.setDeliveryPersistent(true); return jmsTemplate; } }
Mesaj gönderen taraf şöyledir
public class CarOrder {...} public class CustomerOrder {...} import org.springframework.jms.core.JmsTemplate; import javax.jms.TextMessage; @Component public class MessageSender { String queueName = "carQueue"; @Autowired JmsTemplate jmsTemplate; public void sendToQueue() { try { CarOrder carOrder = new CarOrder("Mercedes GLE", 7, 74); processMessageForSending(carOrder); } catch (Exception e) { ... } } public void processMessageForSending(Object message) throws JsonProcessingException { String jsonObj = new ObjectMapper() .writer() .withDefaultPrettyPrinter() .writeValueAsString(message); jmsTemplate.send(queueName, messageCreator -> { TextMessage txtMessage = messageCreator.createTextMessage(); txtMessage.setText(jsonObj); return txtMessage; }); } }
import org.springframework.jms.annotation.JmsListener; import javax.jms.JMSException; import javax.jms.Message; import javax.jms.TextMessage; @Component public class MessageConsumer { @JmsListener(destination = "carQueue") public void queueMessageReceiver(Message receivedMessage) { try { processMessageReceived(receivedMessage); } catch (Exception e) { ... } } public void processMessageReceived(Message messageArg) throws JMSException { if (messageArg instanceof TextMessage) { TextMessage textMessage = (TextMessage) messageArg; String processedMessage = textMessage.getText(); ... } } }
Hiç yorum yok:
Yorum Gönder