下面列出了怎么用org.springframework.context.support.StaticApplicationContext的API类实例代码及写法,或者点击链接到github查看源代码。
@Test
public void testAutoProxyCreatorWithFactoryBeanAndPrototype() {
StaticApplicationContext sac = new StaticApplicationContext();
sac.registerSingleton("testAutoProxyCreator", TestAutoProxyCreator.class);
MutablePropertyValues pvs = new MutablePropertyValues();
pvs.add("singleton", "false");
sac.registerSingleton("prototypeFactoryToBeProxied", DummyFactory.class, pvs);
sac.refresh();
TestAutoProxyCreator tapc = (TestAutoProxyCreator) sac.getBean("testAutoProxyCreator");
tapc.testInterceptor.nrOfInvocations = 0;
FactoryBean<?> prototypeFactory = (FactoryBean<?>) sac.getBean("&prototypeFactoryToBeProxied");
assertTrue(AopUtils.isCglibProxy(prototypeFactory));
TestBean tb = (TestBean) sac.getBean("prototypeFactoryToBeProxied");
assertTrue(AopUtils.isCglibProxy(tb));
assertEquals(2, tapc.testInterceptor.nrOfInvocations);
tb.getAge();
assertEquals(3, tapc.testInterceptor.nrOfInvocations);
}
@Test
public void concurrencyResolverSingleValue() {
StaticApplicationContext applicationContext = new StaticApplicationContext();
applicationContext.registerSingleton("messageHandler", MessageHandlerWithConcurrency.class);
applicationContext.registerSingleton("rqueueMessageHandler", DummyMessageHandler.class);
Map<String, Object> map = new HashMap<>();
map.put("queue.name", slowQueue + "," + smartQueue);
map.put("queue.concurrency", "5");
applicationContext
.getEnvironment()
.getPropertySources()
.addLast(new MapPropertySource("test", map));
applicationContext.refresh();
DummyMessageHandler messageHandler = applicationContext.getBean(DummyMessageHandler.class);
assertEquals(new Concurrency(1, 5), messageHandler.mappingInformation.getConcurrency());
}
@Test
public void taskExecutorByBeanType() {
StaticApplicationContext context = new StaticApplicationContext();
BeanDefinition processorDefinition = new RootBeanDefinition(AsyncAnnotationBeanPostProcessor.class);
context.registerBeanDefinition("postProcessor", processorDefinition);
BeanDefinition executorDefinition = new RootBeanDefinition(ThreadPoolTaskExecutor.class);
executorDefinition.getPropertyValues().add("threadNamePrefix", "testExecutor");
context.registerBeanDefinition("myExecutor", executorDefinition);
BeanDefinition targetDefinition =
new RootBeanDefinition(AsyncAnnotationBeanPostProcessorTests.TestBean.class);
context.registerBeanDefinition("target", targetDefinition);
context.refresh();
ITestBean testBean = context.getBean("target", ITestBean.class);
testBean.test();
testBean.await(3000);
Thread asyncThread = testBean.getThread();
assertTrue(asyncThread.getName().startsWith("testExecutor"));
context.close();
}
@Test
void receiveMessage_withHeaderAnnotationAsArgument_shouldReceiveRequestedHeader() {
// Arrange
StaticApplicationContext applicationContext = new StaticApplicationContext();
applicationContext.registerSingleton("messageHandlerWithHeaderAnnotation",
MessageReceiverWithHeaderAnnotation.class);
applicationContext.registerSingleton("queueMessageHandler",
QueueMessageHandler.class);
applicationContext.refresh();
QueueMessageHandler queueMessageHandler = applicationContext
.getBean(QueueMessageHandler.class);
MessageReceiverWithHeaderAnnotation messageReceiver = applicationContext
.getBean(MessageReceiverWithHeaderAnnotation.class);
// Act
queueMessageHandler.handleMessage(MessageBuilder
.withPayload("Hello from a sender").setHeader("SenderId", "elsUnitTest")
.setHeader(QueueMessageHandler.LOGICAL_RESOURCE_ID, "testQueue").build());
// Assert
assertThat(messageReceiver.getPayload()).isEqualTo("Hello from a sender");
assertThat(messageReceiver.getSenderId()).isEqualTo("elsUnitTest");
}
@Test
public void priorityResolverMultiLevelQueue() {
StaticApplicationContext applicationContext = new StaticApplicationContext();
applicationContext.registerSingleton("messageHandler", MessageHandlerWithPriority.class);
applicationContext.registerSingleton("rqueueMessageHandler", DummyMessageHandler.class);
Map<String, Object> map = new HashMap<>();
map.put("queue.name", slowQueue + "," + smartQueue);
map.put("queue.priority", "critical=10,high=5,low=2");
applicationContext
.getEnvironment()
.getPropertySources()
.addLast(new MapPropertySource("test", map));
applicationContext.refresh();
DummyMessageHandler messageHandler = applicationContext.getBean(DummyMessageHandler.class);
Map<String, Integer> priority = new HashMap<>();
priority.put("critical", 10);
priority.put("high", 5);
priority.put("low", 2);
assertEquals(priority, messageHandler.mappingInformation.getPriority());
}
@Test
public void anonymousClassAsListener() {
final Set<MyEvent> seenEvents = new HashSet<>();
StaticApplicationContext context = new StaticApplicationContext();
context.addApplicationListener(new ApplicationListener<MyEvent>() {
@Override
public void onApplicationEvent(MyEvent event) {
seenEvents.add(event);
}
});
context.refresh();
MyEvent event1 = new MyEvent(context);
context.publishEvent(event1);
context.publishEvent(new MyOtherEvent(context));
MyEvent event2 = new MyEvent(context);
context.publishEvent(event2);
assertSame(2, seenEvents.size());
assertTrue(seenEvents.contains(event1));
assertTrue(seenEvents.contains(event2));
context.close();
}
@Test
public void detectHandlerMethodsInAncestorContexts() {
StaticApplicationContext cxt = new StaticApplicationContext();
cxt.registerSingleton("myHandler", MyHandler.class);
AbstractHandlerMethodMapping<String> mapping1 = new MyHandlerMethodMapping();
mapping1.setApplicationContext(new StaticApplicationContext(cxt));
mapping1.afterPropertiesSet();
assertEquals(0, mapping1.getHandlerMethods().size());
AbstractHandlerMethodMapping<String> mapping2 = new MyHandlerMethodMapping();
mapping2.setDetectHandlerMethodsInAncestorContexts(true);
mapping2.setApplicationContext(new StaticApplicationContext(cxt));
mapping2.afterPropertiesSet();
assertEquals(2, mapping2.getHandlerMethods().size());
}
@Test
public void simpleApplicationEventMulticasterWithTaskExecutor() {
@SuppressWarnings("unchecked")
ApplicationListener<ApplicationEvent> listener = mock(ApplicationListener.class);
ApplicationEvent evt = new ContextClosedEvent(new StaticApplicationContext());
SimpleApplicationEventMulticaster smc = new SimpleApplicationEventMulticaster();
smc.setTaskExecutor(new Executor() {
@Override
public void execute(Runnable command) {
command.run();
command.run();
}
});
smc.addApplicationListener(listener);
smc.multicastEvent(evt);
verify(listener, times(2)).onApplicationEvent(evt);
}
@Test
public void listenersInApplicationContextWithNestedChild() {
StaticApplicationContext context = new StaticApplicationContext();
RootBeanDefinition nestedChild = new RootBeanDefinition(StaticApplicationContext.class);
nestedChild.getPropertyValues().add("parent", context);
nestedChild.setInitMethodName("refresh");
context.registerBeanDefinition("nestedChild", nestedChild);
RootBeanDefinition listener1Def = new RootBeanDefinition(MyOrderedListener1.class);
listener1Def.setDependsOn("nestedChild");
context.registerBeanDefinition("listener1", listener1Def);
context.refresh();
MyOrderedListener1 listener1 = context.getBean("listener1", MyOrderedListener1.class);
MyEvent event1 = new MyEvent(context);
context.publishEvent(event1);
assertTrue(listener1.seenEvents.contains(event1));
SimpleApplicationEventMulticaster multicaster = context.getBean(
AbstractApplicationContext.APPLICATION_EVENT_MULTICASTER_BEAN_NAME,
SimpleApplicationEventMulticaster.class);
assertFalse(multicaster.getApplicationListeners().isEmpty());
context.close();
assertTrue(multicaster.getApplicationListeners().isEmpty());
}
@Test
public void listenersInApplicationContextWithPayloadEvents() {
StaticApplicationContext context = new StaticApplicationContext();
context.registerBeanDefinition("listener", new RootBeanDefinition(MyPayloadListener.class));
context.refresh();
MyPayloadListener listener = context.getBean("listener", MyPayloadListener.class);
context.publishEvent("event1");
context.publishEvent("event2");
context.publishEvent("event3");
context.publishEvent("event4");
assertTrue(listener.seenPayloads.contains("event1"));
assertTrue(listener.seenPayloads.contains("event2"));
assertTrue(listener.seenPayloads.contains("event3"));
assertTrue(listener.seenPayloads.contains("event4"));
AbstractApplicationEventMulticaster multicaster = context.getBean(AbstractApplicationEventMulticaster.class);
assertEquals(2, multicaster.retrieverCache.size());
context.close();
}
@Test
public void testQualifiedByAttributesWithCustomQualifierRegistered() {
StaticApplicationContext context = new StaticApplicationContext();
BeanDefinitionReader reader = new XmlBeanDefinitionReader(context);
reader.loadBeanDefinitions(CONFIG_LOCATION);
QualifierAnnotationAutowireCandidateResolver resolver = (QualifierAnnotationAutowireCandidateResolver)
context.getDefaultListableBeanFactory().getAutowireCandidateResolver();
resolver.addQualifierType(MultipleAttributeQualifier.class);
context.registerSingleton("testBean", MultiQualifierClient.class);
context.refresh();
MultiQualifierClient testBean = (MultiQualifierClient) context.getBean("testBean");
assertNotNull( testBean.factoryTheta);
assertNotNull( testBean.implTheta);
}
@Test
public void resolveManyLoggers() {
// given
String beanName = "simpleLogger";
String alias = "logger";
String beanName2 = "simpleLogger2";
String alias2 = "logger2";
GenericApplicationContext applicationContext = new StaticApplicationContext();
applicationContext.registerBeanDefinition(beanName, givenLoggerBeanDefinition());
applicationContext.getBeanFactory().registerAlias(beanName, alias);
applicationContext.registerBeanDefinition(beanName2, givenLoggerBeanDefinition());
applicationContext.getBeanFactory().registerAlias(beanName2, alias2);
// when
Set<String> namesByBeanName = loggerBeanNamesResolver.resolve(applicationContext, beanName);
// then
assertThat(namesByBeanName, hasSize(2));
assertThat(namesByBeanName, containsInAnyOrder(beanName, alias));
}
@Test
public void resolveView() throws Exception {
StaticApplicationContext ctx = new StaticApplicationContext();
String prefix = ClassUtils.classPackageAsResourcePath(getClass());
String suffix = ".xsl";
String viewName = "products";
XsltViewResolver viewResolver = new XsltViewResolver();
viewResolver.setPrefix(prefix);
viewResolver.setSuffix(suffix);
viewResolver.setApplicationContext(ctx);
XsltView view = (XsltView) viewResolver.resolveViewName(viewName, Locale.ENGLISH);
assertNotNull("View should not be null", view);
assertEquals("Incorrect URL", prefix + viewName + suffix, view.getUrl());
}
@Test
public void contextStoppedEvent() {
StaticApplicationContext context = new StaticApplicationContext();
context.registerSingleton("lifecycle", LifecycleTestBean.class);
context.registerSingleton("listener", LifecycleListener.class);
context.refresh();
LifecycleTestBean lifecycleBean = (LifecycleTestBean) context.getBean("lifecycle");
LifecycleListener listener = (LifecycleListener) context.getBean("listener");
assertFalse(lifecycleBean.isRunning());
context.start();
assertTrue(lifecycleBean.isRunning());
assertEquals(0, listener.getStoppedCount());
context.stop();
assertFalse(lifecycleBean.isRunning());
assertEquals(1, listener.getStoppedCount());
assertSame(context, listener.getApplicationContext());
}
@Test // SPR-15291
public void contentNegotiationWithRedirect() {
HandlerResult handlerResult = new HandlerResult(new Object(), "redirect:/",
on(Handler.class).annotNotPresent(ModelAttribute.class).resolveReturnType(String.class),
this.bindingContext);
UrlBasedViewResolver viewResolver = new UrlBasedViewResolver();
viewResolver.setApplicationContext(new StaticApplicationContext());
ViewResolutionResultHandler resultHandler = resultHandler(viewResolver);
MockServerWebExchange exchange = MockServerWebExchange.from(get("/account").accept(APPLICATION_JSON));
resultHandler.handleResult(exchange, handlerResult).block(Duration.ZERO);
MockServerHttpResponse response = exchange.getResponse();
assertEquals(303, response.getStatusCode().value());
assertEquals("/", response.getHeaders().getLocation().toString());
}
@Test
public void listenersInApplicationContextWithNestedChild() {
StaticApplicationContext context = new StaticApplicationContext();
RootBeanDefinition nestedChild = new RootBeanDefinition(StaticApplicationContext.class);
nestedChild.getPropertyValues().add("parent", context);
nestedChild.setInitMethodName("refresh");
context.registerBeanDefinition("nestedChild", nestedChild);
RootBeanDefinition listener1Def = new RootBeanDefinition(MyOrderedListener1.class);
listener1Def.setDependsOn("nestedChild");
context.registerBeanDefinition("listener1", listener1Def);
context.refresh();
MyOrderedListener1 listener1 = context.getBean("listener1", MyOrderedListener1.class);
MyEvent event1 = new MyEvent(context);
context.publishEvent(event1);
assertTrue(listener1.seenEvents.contains(event1));
SimpleApplicationEventMulticaster multicaster = context.getBean(
AbstractApplicationContext.APPLICATION_EVENT_MULTICASTER_BEAN_NAME,
SimpleApplicationEventMulticaster.class);
assertFalse(multicaster.getApplicationListeners().isEmpty());
context.close();
assertTrue(multicaster.getApplicationListeners().isEmpty());
}
@Test
void postProcessBeanFactory_withConfigurableEnvironment_registersPropertySource()
throws Exception {
// Arrange
StaticApplicationContext staticApplicationContext = new StaticApplicationContext();
staticApplicationContext.registerSingleton("process",
AmazonEc2InstanceDataPropertySourcePostProcessor.class);
// Act
staticApplicationContext.refresh();
// Assert
assertThat(staticApplicationContext.getEnvironment().getPropertySources().get(
AmazonEc2InstanceDataPropertySourcePostProcessor.INSTANCE_DATA_PROPERTY_SOURCE_NAME))
.isNotNull();
}
@Test
public void testQualifiedByAttributesWithCustomQualifierRegistered() {
StaticApplicationContext context = new StaticApplicationContext();
BeanDefinitionReader reader = new XmlBeanDefinitionReader(context);
reader.loadBeanDefinitions(CONFIG_LOCATION);
QualifierAnnotationAutowireCandidateResolver resolver = (QualifierAnnotationAutowireCandidateResolver)
context.getDefaultListableBeanFactory().getAutowireCandidateResolver();
resolver.addQualifierType(MultipleAttributeQualifier.class);
context.registerSingleton("testBean", MultiQualifierClient.class);
context.refresh();
MultiQualifierClient testBean = (MultiQualifierClient) context.getBean("testBean");
assertNotNull( testBean.factoryTheta);
assertNotNull( testBean.implTheta);
}
@Test
public void contextStoppedEvent() {
StaticApplicationContext context = new StaticApplicationContext();
context.registerSingleton("lifecycle", LifecycleTestBean.class);
context.registerSingleton("listener", LifecycleListener.class);
context.refresh();
LifecycleTestBean lifecycleBean = (LifecycleTestBean) context.getBean("lifecycle");
LifecycleListener listener = (LifecycleListener) context.getBean("listener");
assertFalse(lifecycleBean.isRunning());
context.start();
assertTrue(lifecycleBean.isRunning());
assertEquals(0, listener.getStoppedCount());
context.stop();
assertFalse(lifecycleBean.isRunning());
assertEquals(1, listener.getStoppedCount());
assertSame(context, listener.getApplicationContext());
}
@Test
public void testAutoProxyCreatorWithFactoryBean() {
StaticApplicationContext sac = new StaticApplicationContext();
sac.registerSingleton("testAutoProxyCreator", TestAutoProxyCreator.class);
sac.registerSingleton("singletonFactoryToBeProxied", DummyFactory.class);
sac.refresh();
TestAutoProxyCreator tapc = (TestAutoProxyCreator) sac.getBean("testAutoProxyCreator");
tapc.testInterceptor.nrOfInvocations = 0;
FactoryBean<?> factory = (FactoryBean<?>) sac.getBean("&singletonFactoryToBeProxied");
assertTrue(AopUtils.isCglibProxy(factory));
TestBean tb = (TestBean) sac.getBean("singletonFactoryToBeProxied");
assertTrue(AopUtils.isCglibProxy(tb));
assertEquals(2, tapc.testInterceptor.nrOfInvocations);
tb.getAge();
assertEquals(3, tapc.testInterceptor.nrOfInvocations);
}
@Test
public void taskExecutorByBeanType() {
StaticApplicationContext context = new StaticApplicationContext();
BeanDefinition processorDefinition = new RootBeanDefinition(AsyncAnnotationBeanPostProcessor.class);
context.registerBeanDefinition("postProcessor", processorDefinition);
BeanDefinition executorDefinition = new RootBeanDefinition(ThreadPoolTaskExecutor.class);
executorDefinition.getPropertyValues().add("threadNamePrefix", "testExecutor");
context.registerBeanDefinition("myExecutor", executorDefinition);
BeanDefinition targetDefinition =
new RootBeanDefinition(AsyncAnnotationBeanPostProcessorTests.TestBean.class);
context.registerBeanDefinition("target", targetDefinition);
context.refresh();
ITestBean testBean = context.getBean("target", ITestBean.class);
testBean.test();
testBean.await(3000);
Thread asyncThread = testBean.getThread();
assertTrue(asyncThread.getName().startsWith("testExecutor"));
context.close();
}
@Test
public void detectHandlerMethodsInAncestorContexts() {
StaticApplicationContext cxt = new StaticApplicationContext();
cxt.registerSingleton("myHandler", MyHandler.class);
AbstractHandlerMethodMapping<String> mapping1 = new MyHandlerMethodMapping();
mapping1.setApplicationContext(new StaticApplicationContext(cxt));
mapping1.afterPropertiesSet();
assertEquals(0, mapping1.getHandlerMethods().size());
AbstractHandlerMethodMapping<String> mapping2 = new MyHandlerMethodMapping();
mapping2.setDetectHandlerMethodsInAncestorContexts(true);
mapping2.setApplicationContext(new StaticApplicationContext(cxt));
mapping2.afterPropertiesSet();
assertEquals(2, mapping2.getHandlerMethods().size());
}
@Test
public void testQualifiedByAnnotation() {
StaticApplicationContext context = new StaticApplicationContext();
BeanDefinitionReader reader = new XmlBeanDefinitionReader(context);
reader.loadBeanDefinitions(CONFIG_LOCATION);
context.registerSingleton("testBean", QualifiedByAnnotationTestBean.class);
context.refresh();
QualifiedByAnnotationTestBean testBean = (QualifiedByAnnotationTestBean) context.getBean("testBean");
Person person = testBean.getLarry();
assertEquals("LarrySpecial", person.getName());
}
@Test
public void listenerAndBroadcasterWithCircularReference() {
StaticApplicationContext context = new StaticApplicationContext();
context.registerBeanDefinition("broadcaster", new RootBeanDefinition(BeanThatBroadcasts.class));
RootBeanDefinition listenerDef = new RootBeanDefinition(BeanThatListens.class);
listenerDef.getConstructorArgumentValues().addGenericArgumentValue(new RuntimeBeanReference("broadcaster"));
context.registerBeanDefinition("listener", listenerDef);
context.refresh();
BeanThatBroadcasts broadcaster = context.getBean("broadcaster", BeanThatBroadcasts.class);
context.publishEvent(new MyEvent(context));
assertEquals("The event was not received by the listener", 2, broadcaster.receivedCount);
context.close();
}
@Test
void receiveMessage_withHeadersAsArgumentAnnotation_shouldReceiveAllHeaders() {
// Arrange
StaticApplicationContext applicationContext = new StaticApplicationContext();
applicationContext.registerSingleton("messageHandlerWithHeadersAnnotation",
MessageReceiverWithHeadersAnnotation.class);
applicationContext.registerSingleton("queueMessageHandler",
QueueMessageHandler.class);
applicationContext.refresh();
QueueMessageHandler queueMessageHandler = applicationContext
.getBean(QueueMessageHandler.class);
MessageReceiverWithHeadersAnnotation messageReceiver = applicationContext
.getBean(MessageReceiverWithHeadersAnnotation.class);
// Act
queueMessageHandler
.handleMessage(MessageBuilder.withPayload("Hello from a sender")
.setHeader(QueueMessageHandler.LOGICAL_RESOURCE_ID, "testQueue")
.setHeader("SenderId", "ID").setHeader("SentTimestamp", "1000")
.setHeader("ApproximateFirstReceiveTimestamp", "2000").build());
// Assert
assertThat(messageReceiver.getHeaders()).isNotNull();
assertThat(messageReceiver.getHeaders().get("SenderId")).isEqualTo("ID");
assertThat(
messageReceiver.getHeaders().get(QueueMessageHandler.LOGICAL_RESOURCE_ID))
.isEqualTo("testQueue");
}
@Test
void start_withAQueueNameThatIsAlreadyRunning_shouldNotStartTheQueueAgainAndIgnoreTheCall()
throws Exception {
// Arrange
StaticApplicationContext applicationContext = new StaticApplicationContext();
applicationContext.registerSingleton("testMessageListener",
TestMessageListener.class);
SimpleMessageListenerContainer container = new SimpleMessageListenerContainer();
AmazonSQSAsync sqs = mock(AmazonSQSAsync.class, withSettings().stubOnly());
when(sqs.receiveMessage(any(ReceiveMessageRequest.class)))
.thenReturn(new ReceiveMessageResult());
container.setAmazonSqs(sqs);
container.setBackOffTime(0);
QueueMessageHandler messageHandler = new QueueMessageHandler();
messageHandler.setApplicationContext(applicationContext);
container.setMessageHandler(messageHandler);
mockGetQueueUrl(sqs, "testQueue",
"https://start_withAQueueNameThatIsAlreadyRunning_shouldNotStartTheQueueAgainAndIgnoreTheCall.amazonaws.com");
mockGetQueueAttributesWithEmptyResult(sqs,
"https://start_withAQueueNameThatIsAlreadyRunning_shouldNotStartTheQueueAgainAndIgnoreTheCall.amazonaws.com");
messageHandler.afterPropertiesSet();
container.afterPropertiesSet();
container.start();
assertThat(container.isRunning("testQueue")).isTrue();
// Act
container.start("testQueue");
// Assert
assertThat(container.isRunning("testQueue")).isTrue();
container.stop();
}
@Test
public void testMethodValidationPostProcessor() {
StaticApplicationContext ac = new StaticApplicationContext();
ac.registerSingleton("mvpp", MethodValidationPostProcessor.class);
MutablePropertyValues pvs = new MutablePropertyValues();
pvs.add("beforeExistingAdvisors", false);
ac.registerSingleton("aapp", AsyncAnnotationBeanPostProcessor.class, pvs);
ac.registerSingleton("bean", MyValidBean.class);
ac.refresh();
doTestProxyValidation(ac.getBean("bean", MyValidInterface.class));
ac.close();
}
@Test
public void testWebApplicationObjectSupportWithWrongContext() {
StaticApplicationContext ac = new StaticApplicationContext();
ac.registerBeanDefinition("test", new RootBeanDefinition(TestWebApplicationObject.class));
WebApplicationObjectSupport wao = (WebApplicationObjectSupport) ac.getBean("test");
try {
wao.getWebApplicationContext();
fail("Should have thrown IllegalStateException");
}
catch (IllegalStateException ex) {
// expected
}
}
@Test
public void simpValidatorMvc() {
StaticApplicationContext appCxt = new StaticApplicationContext();
appCxt.registerSingleton("mvcValidator", TestValidator.class);
AbstractMessageBrokerConfiguration config = new BaseTestMessageBrokerConfig() {};
config.setApplicationContext(appCxt);
assertThat(config.simpValidator(), Matchers.notNullValue());
assertThat(config.simpValidator(), Matchers.instanceOf(TestValidator.class));
}
@Test(expected = BeanCreationException.class)
public void concurrencyResolverInvalidValue() {
StaticApplicationContext applicationContext = new StaticApplicationContext();
applicationContext.registerSingleton("messageHandler", MessageHandlerWithConcurrency.class);
applicationContext.registerSingleton("rqueueMessageHandler", DummyMessageHandler.class);
Map<String, Object> map = new HashMap<>();
map.put("queue.name", slowQueue + "," + smartQueue);
map.put("queue.concurrency", slowQueue);
applicationContext
.getEnvironment()
.getPropertySources()
.addLast(new MapPropertySource("test", map));
applicationContext.refresh();
}