package com.didispace;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.cloud.stream.annotation.rxjava.EnableRxJavaProcessor;
import org.springframework.cloud.stream.annotation.rxjava.RxJavaProcessor;
import org.springframework.context.annotation.Bean;
/**
*
*
* @author 翟永超
* @create 2016/11/8.
* @blog http://blog.didispace.com
*/
//@EnableRxJavaProcessor
//@EnableBinding(value = {Processor.class})
public class App1 {
private static Logger logger = LoggerFactory.getLogger(HelloApplication.class);
// @StreamListener(Processor.INPUT)
// @SendTo(Processor.OUTPUT)
// public Object receiveFromInput(Object payload) {
// logger.info("Received: " + payload);
// return "From Input Channel Return - " + payload;
// }
/**原生实现**/
// @ServiceActivator(inputChannel= Processor.INPUT, outputChannel = Processor.OUTPUT)
// public Object receiveFromInput(Object payload) {
// logger.info("Received: " + payload);
// return "From Input Channel Return - " + payload;
// }
/**rxjava实现**/
@Bean
public RxJavaProcessor<String,String> processor() {
return inputStream -> inputStream.map(data -> {
logger.info("Received: " + data);
return data;
}).buffer(5).map(data -> String.valueOf("From Input Channel Return - " + data));
}
}