Example usage for org.springframework.integration.handler.support CollectionArgumentResolver setBeanFactory

List of usage examples for org.springframework.integration.handler.support CollectionArgumentResolver setBeanFactory

Introduction

In this page you can find the example usage for org.springframework.integration.handler.support CollectionArgumentResolver setBeanFactory.

Prototype

@Override
public void setBeanFactory(BeanFactory beanFactory) 

Source Link

Document

Specify a BeanFactory in order to enable resolution via @beanName in the expression.

Usage

From source file:org.springframework.integration.handler.support.MessagingMethodInvokerHelper.java

private void configureLocalMessageHandlerFactory() {
    MessageConverter messageConverter = null;
    if (getBeanFactory() != null && getBeanFactory()
            .containsBean(IntegrationContextUtils.ARGUMENT_RESOLVER_MESSAGE_CONVERTER_BEAN_NAME)) {
        messageConverter = getBeanFactory().getBean(
                IntegrationContextUtils.ARGUMENT_RESOLVER_MESSAGE_CONVERTER_BEAN_NAME, MessageConverter.class);
        this.messageHandlerMethodFactory.setMessageConverter(messageConverter);
    } else {//ww w .j av  a 2  s. c  o  m
        messageConverter = new ConfigurableCompositeMessageConverter();
    }
    NullAwarePayloadArgumentResolver nullResolver = new NullAwarePayloadArgumentResolver(messageConverter);
    PayloadExpressionArgumentResolver payloadExpressionArgumentResolver = new PayloadExpressionArgumentResolver();
    payloadExpressionArgumentResolver.setBeanFactory(getBeanFactory());

    PayloadsArgumentResolver payloadsArgumentResolver = new PayloadsArgumentResolver();
    payloadsArgumentResolver.setBeanFactory(getBeanFactory());

    MapArgumentResolver mapArgumentResolver = new MapArgumentResolver();
    mapArgumentResolver.setBeanFactory(getBeanFactory());

    List<HandlerMethodArgumentResolver> customArgumentResolvers = new LinkedList<>();
    customArgumentResolvers.add(payloadExpressionArgumentResolver);
    customArgumentResolvers.add(nullResolver);
    customArgumentResolvers.add(payloadsArgumentResolver);

    if (this.canProcessMessageList) {
        CollectionArgumentResolver collectionArgumentResolver = new CollectionArgumentResolver(true);
        collectionArgumentResolver.setBeanFactory(getBeanFactory());
        customArgumentResolvers.add(collectionArgumentResolver);
    }

    customArgumentResolvers.add(mapArgumentResolver);

    this.messageHandlerMethodFactory.setCustomArgumentResolvers(customArgumentResolvers);
}