/** Creates an instrumented {@linkplain SimpleRabbitListenerContainerFactory} */ public SimpleRabbitListenerContainerFactory newSimpleRabbitListenerContainerFactory( ConnectionFactory connectionFactory ) { SimpleRabbitListenerContainerFactory factory = new SimpleRabbitListenerContainerFactory(); factory.setConnectionFactory(connectionFactory); factory.setAdviceChain(new TracingRabbitListenerAdvice(this)); return factory; }
@Bean @ConditionalOnProperty(prefix = "spring.rabbitmq", name = "host") public SimpleRabbitListenerContainerFactory myContainerFactory( SimpleRabbitListenerContainerFactoryConfigurer configurer, ConnectionFactory connectionFactory) { SimpleRabbitListenerContainerFactory factory = new SimpleRabbitListenerContainerFactory(); factory.setPrefetchCount(100); configurer.configure(factory, connectionFactory); return factory; }
@Bean(name = "helloRabbitListenerContainer") public SimpleRabbitListenerContainerFactory rabbitListenerContainerFactory(ConnectionFactory connectionFactory,MessageConverter messageConverter) { SimpleRabbitListenerContainerFactory factory = new SimpleRabbitListenerContainerFactory(); factory.setMessageConverter(messageConverter); factory.setConnectionFactory(connectionFactory); return factory; }
@Bean public SimpleRabbitListenerContainerFactory rabbitListenerContainerFactory(ConnectionFactory cf) { SimpleRabbitListenerContainerFactory containerFactory = new SimpleRabbitListenerContainerFactory(); containerFactory.setConnectionFactory(cf); return containerFactory; }
@Bean public SimpleRabbitListenerContainerFactory simpleJsonListenerContainerFactory() { SimpleRabbitListenerContainerFactory factory = new SimpleRabbitListenerContainerFactory(); factory.setConnectionFactory(rabbitConnectionFactory()); factory.setErrorHandler(errorHandler()); factory.setConsumerTagStrategy(consumerTagStrategy()); Jackson2JsonMessageConverter messageConverter = new Jackson2JsonMessageConverter(); messageConverter.getJavaTypeMapper().addTrustedPackages("*"); factory.setMessageConverter(messageConverter); factory.setReceiveTimeout(10L); return factory; }
@Autowired public ConnectionFactory connectionFactory; @Bean public SimpleRabbitListenerContainerFactory rabbitListenerContainerFactory() { SimpleRabbitListenerContainerFactory factory = new SimpleRabbitListenerContainerFactory(); factory.setConnectionFactory(connectionFactory); factory.setConcurrentConsumers(3); factory.setMaxConcurrentConsumers(10); return factory; }
@Bean public SimpleRabbitListenerContainerFactory rabbitListenerContainerFactory() { SimpleRabbitListenerContainerFactory factory = new SimpleRabbitListenerContainerFactory(); factory.setConnectionFactory(rabbitConnectionFactory()); factory.setMessageConverter(xmlConverter()); factory.setReceiveTimeout(10L); return factory; }
private void initRabbitMQ() throws URISyntaxException { CachingConnectionFactory connectionFactory = new CachingConnectionFactory(new URI(host)); Map<String, Object> cmdQueueArgs = new HashMap<>(); cmdQueueArgs.put("x-max-length", maxSize); cmdQueueArgs.put("x-max-priority", maxPriority); Queue cmdQueue = new Queue(name, true, false, false, cmdQueueArgs); RabbitAdmin rabbitAdmin = new RabbitAdmin(connectionFactory); rabbitAdmin.declareQueue(cmdQueue); // setup listener container factory SimpleRabbitListenerContainerFactory factory = new SimpleRabbitListenerContainerFactory(); factory.setConnectionFactory(connectionFactory); factory.setConcurrentConsumers(DEFAULT_CONCURRENCY); factory.setMaxConcurrentConsumers(DEFAULT_CONCURRENCY); factory.setTaskExecutor(executor); factory.setAutoStartup(false); // setup rabbit template template = new RabbitTemplate(connectionFactory); template.setQueue(name); // setup container SimpleRabbitListenerEndpoint simpleEndpoint = new SimpleRabbitListenerEndpoint(); simpleEndpoint.setMessageListener(new RabbitMessageListener()); container = factory.createListenerContainer(simpleEndpoint); container.setQueueNames(name); log.trace("RabbitMQ initialized on '{}' with queue name '{}'", host, name); }
private SimpleRabbitListenerContainerFactory createContainerFactory (int aConcurrency) { SimpleRabbitListenerContainerFactory factory = new SimpleRabbitListenerContainerFactory(); factory.setConcurrentConsumers(aConcurrency); factory.setConnectionFactory(connectionFactory); factory.setDefaultRequeueRejected(false); factory.setMessageConverter(jacksonAmqpMessageConverter(objectMapper)); return factory; }
@Bean public SimpleRabbitListenerContainerFactory rabbitListenerContainerFactory() { SimpleRabbitListenerContainerFactory factory = new SimpleRabbitListenerContainerFactory(); factory.setConnectionFactory(rabbitConnectionFactory()); factory.setErrorHandler(errorHandler()); factory.setConsumerTagStrategy(consumerTagStrategy()); factory.setReceiveTimeout(10L); factory.setBeforeSendReplyPostProcessors(m -> { m.getMessageProperties().getHeaders().put("replyMPPApplied", true); return m; }); factory.setRetryTemplate(new RetryTemplate()); factory.setReplyRecoveryCallback(c -> null); return factory; }
@Bean public RabbitListenerContainerFactory<SimpleMessageListenerContainer> prefetchTenRabbitListenerContainerFactory(ConnectionFactory rabbitConnectionFactory) { SimpleRabbitListenerContainerFactory factory = new SimpleRabbitListenerContainerFactory(); factory.setConnectionFactory(rabbitConnectionFactory); factory.setPrefetchCount(10); return factory; }
@Bean public SimpleRabbitListenerContainerFactory rabbitListenerContainerFactory() { SimpleRabbitListenerContainerFactory factory = new SimpleRabbitListenerContainerFactory(); factory.setConnectionFactory(rabbitConnectionFactory()); factory.setMismatchedQueuesFatal(true); factory.setAcknowledgeMode(AcknowledgeMode.MANUAL); return factory; }
@Bean public SimpleRabbitListenerContainerFactory rabbitListenerContainerFactory() { SimpleRabbitListenerContainerFactory factory = new SimpleRabbitListenerContainerFactory(); factory.setConnectionFactory(rabbitConnectionFactory()); factory.setIdleEventInterval(500L); factory.setReceiveTimeout(100L); factory.setMismatchedQueuesFatal(true); return factory; }
@Bean public SimpleRabbitListenerContainerFactory rabbitAutoStartFalseListenerContainerFactory() { SimpleRabbitListenerContainerFactory factory = new SimpleRabbitListenerContainerFactory(); factory.setConnectionFactory(rabbitConnectionFactory()); factory.setReceiveTimeout(10L); factory.setAutoStartup(false); return factory; }
@Bean public SimpleRabbitListenerContainerFactory manualFactory(SimpleRabbitListenerContainerFactoryConfigurer configurer) { SimpleRabbitListenerContainerFactory factory = new SimpleRabbitListenerContainerFactory(); configurer.configure(factory, connectionFactory); factory.setMessageConverter(jsonMessageConverter()); factory.setAcknowledgeMode(AcknowledgeMode.MANUAL); return factory; }
/** * 设置消息转换器为json转换 * * @param configurer * @return */ @Bean public SimpleRabbitListenerContainerFactory myFactory(SimpleRabbitListenerContainerFactoryConfigurer configurer) { SimpleRabbitListenerContainerFactory factory = new SimpleRabbitListenerContainerFactory(); configurer.configure(factory, connectionFactory); factory.setMessageConverter(jsonMessageConverter()); return factory; }
@Bean public SimpleRabbitListenerContainerFactory rabbitListenerContainerFactory(ConnectionFactory connectionFactory, SimpleRabbitListenerContainerFactoryConfigurer configurer) { SimpleRabbitListenerContainerFactory factory = new SimpleRabbitListenerContainerFactory(); configurer.configure(factory, connectionFactory); factory.setErrorHandler(errorHandler()); return factory; }
@Bean public SimpleRabbitListenerContainerFactory rabbitListenerContainerFactory() { SimpleRabbitListenerContainerFactory containerFactory = new SimpleRabbitListenerContainerFactory() { @Override protected SimpleMessageListenerContainer createContainerInstance() { SimpleMessageListenerContainer listenerContainer = spy(super.createContainerInstance()); willThrow(RuntimeException.class) .given(listenerContainer) .shutdown(); return listenerContainer; } }; ConnectionFactory connectionFactory = mock(ConnectionFactory.class); Connection connection = mock(Connection.class); given(connection.createChannel(anyBoolean())) .willReturn(mock(Channel.class)); given(connectionFactory.createConnection()) .willReturn(connection); containerFactory.setConnectionFactory(connectionFactory); return containerFactory; }
@Test public void messageConverterUsedIfSet() throws Exception { containerFactory.setMessageConverter(new UpperCaseMessageConverter()); MethodRabbitListenerEndpoint endpoint = createDefaultMethodRabbitEndpoint("expectFooBarUpperCase", String.class); Message message = MessageTestUtils.createTextMessage("foo-bar"); invokeListener(endpoint, message); assertListenerMethodInvocation("expectFooBarUpperCase"); }
@Bean SimpleRabbitListenerContainerFactory rabbitListenerContainerFactory(org.springframework.amqp.rabbit.connection.ConnectionFactory cf, ObjectMapper mapper) { SimpleRabbitListenerContainerFactory factory = new SimpleRabbitListenerContainerFactory(); factory.setConnectionFactory(cf); factory.setMessageConverter(new Jackson2JsonMessageConverter(mapper)); return factory; }