<bean id="connectionFactory" class="org.apache.activemq.ActiveMQConnectionFactory"> <property name="brokerURL" value="tcp://localhost:61616" /> </bean> <bean id="jmsTemplate" class="org.springframework.jms.core.JmsTemplate"> <property name="connectionFactory" ref="connectionFactory" /> </bean> @Component public class MessageProducer { @Autowired private JmsTemplate jmsTemplate; public void sendMessage(String message) { jmsTemplate.setDeliveryMode(DeliveryMode.PERSISTENT); jmsTemplate.send("queueName", session -> { TextMessage textMessage = session.createTextMessage(); textMessage.setText(message); return textMessage; }); } } @Component public class MessageConsumer implements MessageListener { @Override public void onMessage(Message message) { } } @Configuration @EnableJms public class JmsConfig { @Autowired private ConnectionFactory connectionFactory; @Autowired private MessageConsumer messageConsumer; @Bean public DefaultJmsListenerContainerFactory jmsListenerContainerFactory() { DefaultJmsListenerContainerFactory factory = new DefaultJmsListenerContainerFactory(); factory.setConnectionFactory(connectionFactory); factory.setSessionAcknowledgeMode(Session.AUTO_ACKNOWLEDGE); return factory; } @Bean public JmsListenerContainerFactory<?> customJmsListenerContainerFactory(DefaultJmsListenerContainerFactory jmsListenerContainerFactory) { jmsListenerContainerFactory.setMessageConverter(jacksonJmsMessageConverter()); return jmsListenerContainerFactory; } @Bean public MessageConverter jacksonJmsMessageConverter() { MappingJackson2MessageConverter converter = new MappingJackson2MessageConverter(); converter.setTargetType(MessageType.TEXT); converter.setTypeIdPropertyName("type"); return converter; } @Bean public MessageListenerContainer messageListenerContainer(JmsListenerContainerFactory<?> jmsListenerContainerFactory) { DefaultMessageListenerContainer container = new DefaultMessageListenerContainer(); container.setConnectionFactory(connectionFactory); container.setDestinationName("queueName"); container.setMessageListener(messageConsumer); return container; } }


上一篇:
下一篇:
切换中文