类org.springframework.messaging.handler.invocation.HandlerMethodReturnValueHandler源码实例Demo

下面列出了怎么用org.springframework.messaging.handler.invocation.HandlerMethodReturnValueHandler的API类实例代码及写法,或者点击链接到github查看源代码。

@Bean
public SimpAnnotationMethodMessageHandler simpAnnotationMethodMessageHandler() {
	SimpAnnotationMethodMessageHandler handler = createAnnotationMethodMessageHandler();
	handler.setDestinationPrefixes(getBrokerRegistry().getApplicationDestinationPrefixes());
	handler.setMessageConverter(brokerMessageConverter());
	handler.setValidator(simpValidator());

	List<HandlerMethodArgumentResolver> argumentResolvers = new ArrayList<>();
	addArgumentResolvers(argumentResolvers);
	handler.setCustomArgumentResolvers(argumentResolvers);

	List<HandlerMethodReturnValueHandler> returnValueHandlers = new ArrayList<>();
	addReturnValueHandlers(returnValueHandlers);
	handler.setCustomReturnValueHandlers(returnValueHandlers);

	PathMatcher pathMatcher = getBrokerRegistry().getPathMatcher();
	if (pathMatcher != null) {
		handler.setPathMatcher(pathMatcher);
	}
	return handler;
}
 
@Test
public void customArgumentAndReturnValueTypes() {
	loadBeanDefinitions("websocket-config-broker-custom-argument-and-return-value-types.xml");

	SimpAnnotationMethodMessageHandler handler = this.appContext.getBean(SimpAnnotationMethodMessageHandler.class);

	List<HandlerMethodArgumentResolver> customResolvers = handler.getCustomArgumentResolvers();
	assertEquals(2, customResolvers.size());
	assertTrue(handler.getArgumentResolvers().contains(customResolvers.get(0)));
	assertTrue(handler.getArgumentResolvers().contains(customResolvers.get(1)));

	List<HandlerMethodReturnValueHandler> customHandlers = handler.getCustomReturnValueHandlers();
	assertEquals(2, customHandlers.size());
	assertTrue(handler.getReturnValueHandlers().contains(customHandlers.get(0)));
	assertTrue(handler.getReturnValueHandlers().contains(customHandlers.get(1)));
}
 
@Bean
public SimpAnnotationMethodMessageHandler simpAnnotationMethodMessageHandler() {
	SimpAnnotationMethodMessageHandler handler = createAnnotationMethodMessageHandler();
	handler.setDestinationPrefixes(getBrokerRegistry().getApplicationDestinationPrefixes());
	handler.setMessageConverter(brokerMessageConverter());
	handler.setValidator(simpValidator());

	List<HandlerMethodArgumentResolver> argumentResolvers = new ArrayList<>();
	addArgumentResolvers(argumentResolvers);
	handler.setCustomArgumentResolvers(argumentResolvers);

	List<HandlerMethodReturnValueHandler> returnValueHandlers = new ArrayList<>();
	addReturnValueHandlers(returnValueHandlers);
	handler.setCustomReturnValueHandlers(returnValueHandlers);

	PathMatcher pathMatcher = getBrokerRegistry().getPathMatcher();
	if (pathMatcher != null) {
		handler.setPathMatcher(pathMatcher);
	}
	return handler;
}
 
@Test
public void customArgumentAndReturnValueTypes() {
	loadBeanDefinitions("websocket-config-broker-custom-argument-and-return-value-types.xml");

	SimpAnnotationMethodMessageHandler handler = this.appContext.getBean(SimpAnnotationMethodMessageHandler.class);

	List<HandlerMethodArgumentResolver> customResolvers = handler.getCustomArgumentResolvers();
	assertEquals(2, customResolvers.size());
	assertTrue(handler.getArgumentResolvers().contains(customResolvers.get(0)));
	assertTrue(handler.getArgumentResolvers().contains(customResolvers.get(1)));

	List<HandlerMethodReturnValueHandler> customHandlers = handler.getCustomReturnValueHandlers();
	assertEquals(2, customHandlers.size());
	assertTrue(handler.getReturnValueHandlers().contains(customHandlers.get(0)));
	assertTrue(handler.getReturnValueHandlers().contains(customHandlers.get(1)));
}
 
@Bean
public SimpAnnotationMethodMessageHandler simpAnnotationMethodMessageHandler() {
	SimpAnnotationMethodMessageHandler handler = createAnnotationMethodMessageHandler();
	handler.setDestinationPrefixes(getBrokerRegistry().getApplicationDestinationPrefixes());
	handler.setMessageConverter(brokerMessageConverter());
	handler.setValidator(simpValidator());

	List<HandlerMethodArgumentResolver> argumentResolvers = new ArrayList<HandlerMethodArgumentResolver>();
	addArgumentResolvers(argumentResolvers);
	handler.setCustomArgumentResolvers(argumentResolvers);

	List<HandlerMethodReturnValueHandler> returnValueHandlers = new ArrayList<HandlerMethodReturnValueHandler>();
	addReturnValueHandlers(returnValueHandlers);
	handler.setCustomReturnValueHandlers(returnValueHandlers);

	PathMatcher pathMatcher = this.getBrokerRegistry().getPathMatcher();
	if (pathMatcher != null) {
		handler.setPathMatcher(pathMatcher);
	}
	return handler;
}
 
@Test
public void customArgumentAndReturnValueTypes() {
	loadBeanDefinitions("websocket-config-broker-custom-argument-and-return-value-types.xml");

	SimpAnnotationMethodMessageHandler handler = this.appContext.getBean(SimpAnnotationMethodMessageHandler.class);

	List<HandlerMethodArgumentResolver> customResolvers = handler.getCustomArgumentResolvers();
	assertEquals(2, customResolvers.size());
	assertTrue(handler.getArgumentResolvers().contains(customResolvers.get(0)));
	assertTrue(handler.getArgumentResolvers().contains(customResolvers.get(1)));

	List<HandlerMethodReturnValueHandler> customHandlers = handler.getCustomReturnValueHandlers();
	assertEquals(2, customHandlers.size());
	assertTrue(handler.getReturnValueHandlers().contains(customHandlers.get(0)));
	assertTrue(handler.getReturnValueHandlers().contains(customHandlers.get(1)));
}
 
@Override
protected List<? extends HandlerMethodReturnValueHandler> initReturnValueHandlers() {
	List<HandlerMethodReturnValueHandler> handlers = new ArrayList<>();

	// Single-purpose return value types

	handlers.add(new ListenableFutureReturnValueHandler());
	handlers.add(new CompletableFutureReturnValueHandler());
	handlers.add(new ReactiveReturnValueHandler());

	// Annotation-based return value types

	SendToMethodReturnValueHandler sendToHandler =
			new SendToMethodReturnValueHandler(this.brokerTemplate, true);
	sendToHandler.setHeaderInitializer(this.headerInitializer);
	handlers.add(sendToHandler);

	SubscriptionMethodReturnValueHandler subscriptionHandler =
			new SubscriptionMethodReturnValueHandler(this.clientMessagingTemplate);
	subscriptionHandler.setHeaderInitializer(this.headerInitializer);
	handlers.add(subscriptionHandler);

	// Custom return value types

	handlers.addAll(getCustomReturnValueHandlers());

	// Catch-all

	sendToHandler = new SendToMethodReturnValueHandler(this.brokerTemplate, false);
	sendToHandler.setHeaderInitializer(this.headerInitializer);
	handlers.add(sendToHandler);

	return handlers;
}
 
@Test
public void customArgumentAndReturnValueTypes() {
	ApplicationContext context = loadConfig(CustomConfig.class);

	SimpAnnotationMethodMessageHandler handler =
			context.getBean(SimpAnnotationMethodMessageHandler.class);

	List<HandlerMethodArgumentResolver> customResolvers = handler.getCustomArgumentResolvers();
	assertEquals(1, customResolvers.size());
	assertTrue(handler.getArgumentResolvers().contains(customResolvers.get(0)));

	List<HandlerMethodReturnValueHandler> customHandlers = handler.getCustomReturnValueHandlers();
	assertEquals(1, customHandlers.size());
	assertTrue(handler.getReturnValueHandlers().contains(customHandlers.get(0)));
}
 
@Override
protected List<? extends HandlerMethodReturnValueHandler> initReturnValueHandlers() {
	List<HandlerMethodReturnValueHandler> handlers = new ArrayList<>();

	// Single-purpose return value types

	handlers.add(new ListenableFutureReturnValueHandler());
	handlers.add(new CompletableFutureReturnValueHandler());
	handlers.add(new ReactiveReturnValueHandler());

	// Annotation-based return value types

	SendToMethodReturnValueHandler sendToHandler =
			new SendToMethodReturnValueHandler(this.brokerTemplate, true);
	sendToHandler.setHeaderInitializer(this.headerInitializer);
	handlers.add(sendToHandler);

	SubscriptionMethodReturnValueHandler subscriptionHandler =
			new SubscriptionMethodReturnValueHandler(this.clientMessagingTemplate);
	subscriptionHandler.setHeaderInitializer(this.headerInitializer);
	handlers.add(subscriptionHandler);

	// Custom return value types

	handlers.addAll(getCustomReturnValueHandlers());

	// Catch-all

	sendToHandler = new SendToMethodReturnValueHandler(this.brokerTemplate, false);
	sendToHandler.setHeaderInitializer(this.headerInitializer);
	handlers.add(sendToHandler);

	return handlers;
}
 
@Test
public void customArgumentAndReturnValueTypes() {
	ApplicationContext context = loadConfig(CustomConfig.class);

	SimpAnnotationMethodMessageHandler handler =
			context.getBean(SimpAnnotationMethodMessageHandler.class);

	List<HandlerMethodArgumentResolver> customResolvers = handler.getCustomArgumentResolvers();
	assertEquals(1, customResolvers.size());
	assertTrue(handler.getArgumentResolvers().contains(customResolvers.get(0)));

	List<HandlerMethodReturnValueHandler> customHandlers = handler.getCustomReturnValueHandlers();
	assertEquals(1, customHandlers.size());
	assertTrue(handler.getReturnValueHandlers().contains(customHandlers.get(0)));
}
 
@Override
protected List<? extends HandlerMethodReturnValueHandler> initReturnValueHandlers() {
	List<HandlerMethodReturnValueHandler> handlers = new ArrayList<HandlerMethodReturnValueHandler>();

	// Single-purpose return value types
	handlers.add(new ListenableFutureReturnValueHandler());
	if (completableFuturePresent) {
		handlers.add(new CompletableFutureReturnValueHandler());
	}

	// Annotation-based return value types
	SendToMethodReturnValueHandler sth =
			new SendToMethodReturnValueHandler(this.brokerTemplate, true);
	sth.setHeaderInitializer(this.headerInitializer);
	handlers.add(sth);

	SubscriptionMethodReturnValueHandler sh =
			new SubscriptionMethodReturnValueHandler(this.clientMessagingTemplate);
	sh.setHeaderInitializer(this.headerInitializer);
	handlers.add(sh);

	// custom return value types
	handlers.addAll(getCustomReturnValueHandlers());

	// catch-all
	sth = new SendToMethodReturnValueHandler(this.brokerTemplate, false);
	sth.setHeaderInitializer(this.headerInitializer);
	handlers.add(sth);

	return handlers;
}
 
@Test
public void customArgumentAndReturnValueTypes() throws Exception {
	SimpAnnotationMethodMessageHandler handler = this.customContext.getBean(SimpAnnotationMethodMessageHandler.class);

	List<HandlerMethodArgumentResolver> customResolvers = handler.getCustomArgumentResolvers();
	assertEquals(1, customResolvers.size());
	assertTrue(handler.getArgumentResolvers().contains(customResolvers.get(0)));

	List<HandlerMethodReturnValueHandler> customHandlers = handler.getCustomReturnValueHandlers();
	assertEquals(1, customHandlers.size());
	assertTrue(handler.getReturnValueHandlers().contains(customHandlers.get(0)));
}
 
源代码13 项目: spring-cloud-aws   文件: QueueMessageHandlerTest.java
private AbstractBeanDefinition getQueueMessageHandlerBeanDefinition() {
	BeanDefinitionBuilder queueMessageHandlerBeanDefinitionBuilder = BeanDefinitionBuilder
			.rootBeanDefinition(QueueMessageHandler.class);
	ManagedList<HandlerMethodReturnValueHandler> returnValueHandlers = new ManagedList<>(
			1);
	returnValueHandlers
			.add(new SendToHandlerMethodReturnValueHandler(this.messageTemplate));
	queueMessageHandlerBeanDefinitionBuilder.addPropertyValue("returnValueHandlers",
			returnValueHandlers);
	return queueMessageHandlerBeanDefinitionBuilder.getBeanDefinition();
}
 
源代码14 项目: spring-cloud-aws   文件: QueueMessageHandlerTest.java
@Test
void receiveMessage_withCustomReturnValueHandlers_shouldCallThemBeforeTheDefaultOnes()
		throws Exception {
	// Arrange
	StaticApplicationContext applicationContext = new StaticApplicationContext();
	applicationContext.registerSingleton("incomingMessageHandler",
			IncomingMessageHandler.class);

	HandlerMethodReturnValueHandler handlerMethodReturnValueHandler = mock(
			HandlerMethodReturnValueHandler.class);
	when(handlerMethodReturnValueHandler
			.supportsReturnType(any(MethodParameter.class))).thenReturn(true);
	MutablePropertyValues properties = new MutablePropertyValues(
			Collections.singletonList(new PropertyValue("customReturnValueHandlers",
					handlerMethodReturnValueHandler)));
	applicationContext.registerSingleton("queueMessageHandler",
			QueueMessageHandler.class, properties);
	applicationContext.refresh();

	QueueMessageHandler queueMessageHandler = applicationContext
			.getBean(QueueMessageHandler.class);

	// Act
	queueMessageHandler.handleMessage(MessageBuilder
			.withPayload("Hello from a sender")
			.setHeader(QueueMessageHandler.LOGICAL_RESOURCE_ID, "receiveAndReply")
			.build());

	// Assert
	verify(handlerMethodReturnValueHandler, times(1)).handleReturnValue(
			any(Object.class), any(MethodParameter.class), any(Message.class));

}
 
源代码15 项目: spring-cloud-aws   文件: SqsConfigurationTest.java
@Test
void configuration_withMinimalBeans_shouldStartSqsListenerContainer()
		throws Exception {
	// Arrange & Act
	AnnotationConfigApplicationContext applicationContext = new AnnotationConfigApplicationContext(
			MinimalConfiguration.class);
	SimpleMessageListenerContainer container = applicationContext
			.getBean(SimpleMessageListenerContainer.class);

	// Assert
	assertThat(container.isRunning()).isTrue();
	QueueMessageHandler queueMessageHandler = applicationContext
			.getBean(QueueMessageHandler.class);
	assertThat(QueueMessageHandler.class.isInstance(queueMessageHandler)).isTrue();

	HandlerMethodReturnValueHandler sendToReturnValueHandler = queueMessageHandler
			.getCustomReturnValueHandlers().get(0);
	QueueMessagingTemplate messagingTemplate = (QueueMessagingTemplate) ReflectionTestUtils
			.getField(sendToReturnValueHandler, "messageTemplate");
	AmazonSQSBufferedAsyncClient amazonBufferedSqsClient = (AmazonSQSBufferedAsyncClient) ReflectionTestUtils
			.getField(messagingTemplate, "amazonSqs");
	AmazonSQSAsyncClient amazonSqsClient = (AmazonSQSAsyncClient) ReflectionTestUtils
			.getField(amazonBufferedSqsClient, "realSQS");
	assertThat(
			ReflectionTestUtils.getField(amazonSqsClient, "awsCredentialsProvider"))
					.isNotNull();
}
 
源代码16 项目: rqueue   文件: RqueueMessageHandler.java
@Override
protected List<? extends HandlerMethodReturnValueHandler> initReturnValueHandlers() {
  return new ArrayList<>(getCustomReturnValueHandlers());
}
 
protected void addReturnValueHandlers(List<HandlerMethodReturnValueHandler> returnValueHandlers) {
}
 
@Override
protected void addReturnValueHandlers(List<HandlerMethodReturnValueHandler> returnValueHandlers) {
	returnValueHandlers.add(mock(HandlerMethodReturnValueHandler.class));
}
 
@Override
protected void addReturnValueHandlers(List<HandlerMethodReturnValueHandler> returnValueHandlers) {
	for (WebSocketMessageBrokerConfigurer configurer : this.configurers) {
		configurer.addReturnValueHandlers(returnValueHandlers);
	}
}
 
@Override
public void addReturnValueHandlers(List<HandlerMethodReturnValueHandler> returnValueHandlers) {
}
 
protected void addReturnValueHandlers(List<HandlerMethodReturnValueHandler> returnValueHandlers) {
}
 
@Override
protected void addReturnValueHandlers(List<HandlerMethodReturnValueHandler> returnValueHandlers) {
	returnValueHandlers.add(mock(HandlerMethodReturnValueHandler.class));
}
 
@Override
protected void addReturnValueHandlers(List<HandlerMethodReturnValueHandler> returnValueHandlers) {
	for (WebSocketMessageBrokerConfigurer configurer : this.configurers) {
		configurer.addReturnValueHandlers(returnValueHandlers);
	}
}
 
@Override
public void addReturnValueHandlers(List<HandlerMethodReturnValueHandler> returnValueHandlers) {
}
 
protected void addReturnValueHandlers(List<HandlerMethodReturnValueHandler> returnValueHandlers) {
}
 
@Override
protected void addReturnValueHandlers(List<HandlerMethodReturnValueHandler> returnValueHandlers) {
	returnValueHandlers.add(mock(HandlerMethodReturnValueHandler.class));
}
 
@Override
protected void addReturnValueHandlers(List<HandlerMethodReturnValueHandler> returnValueHandlers) {
	for (WebSocketMessageBrokerConfigurer configurer : this.configurers) {
		configurer.addReturnValueHandlers(returnValueHandlers);
	}
}
 
@Override
public void addReturnValueHandlers(List<HandlerMethodReturnValueHandler> returnValueHandlers) {
}
 
源代码29 项目: consensusj   文件: WebSocketConfig.java
@Override
public void addReturnValueHandlers(List<HandlerMethodReturnValueHandler> returnValueHandlers) {
    // TODO: ??
}
 
源代码30 项目: spring-cloud-aws   文件: QueueMessageHandler.java
@Override
protected List<? extends HandlerMethodReturnValueHandler> initReturnValueHandlers() {
	return new ArrayList<>(this.getCustomReturnValueHandlers());
}
 
 类方法
 同包方法