activemq配置文件如下:
@Configuration
public class JmsConfig {
@Bean
public ConnectionFactory connectionFactory(){
ConnectionFactory cf = new ActiveMQConnectionFactory("tcp://localhost:61616");
TransactionAwareConnectionFactoryProxy proxy = new TransactionAwareConnectionFactoryProxy();
proxy.setTargetConnectionFactory(cf);
proxy.setSynchedLocalTransactionAllowed(true);
return proxy;
}
@Bean
public JmsTemplate jmsTemplate(ConnectionFactory connectionFactory){
JmsTemplate jmsTemplate = new JmsTemplate(connectionFactory);
jmsTemplate.setSessionTransacted(true);
return jmsTemplate;
}
// 这个用于设置 @JmsListener使用的containerFactory
@Bean
public JmsListenerContainerFactory<?> msgFactory(ConnectionFactory cf,
DefaultJmsListenerContainerFactoryConfigurer configurer,
PlatformTransactionManager transactionManager) {
DefaultJmsListenerContainerFactory factory = new DefaultJmsListenerContainerFactory();
configurer.configure(factory, cf);
factory.setTransactionManager(transactionManager);
//factory.setCacheLevelName("CACHE_CONNECTION");
factory.setReceiveTimeout(10000L);
factory.setConcurrency("10");//设置并发的去读消息
return factory;
}
//收发消息的时候,自动把java对象转化成json数据
@Bean
public MessageConverter jacksonJmsConverter(){
MappingJackson2MessageConverter converter = new MappingJackson2MessageConverter();
converter.setTargetType(MessageType.TEXT);
converter.setTypeIdPropertyName("_type");
return converter;
}
}@Configuration
publ