Add Supplier Exporter sample

This commit is contained in:
Oleg Zhurakousky
2020-05-07 10:28:25 +02:00
parent 07e4de71d2
commit 5aeb77a073
12 changed files with 460 additions and 0 deletions

View File

@@ -0,0 +1,55 @@
package com.example.demo;
import java.util.function.Function;
import org.springframework.boot.SpringBootConfiguration;
import org.springframework.cloud.function.context.FunctionRegistration;
import org.springframework.cloud.function.context.FunctionType;
import org.springframework.cloud.function.context.FunctionalSpringApplication;
import org.springframework.context.ApplicationContextInitializer;
import org.springframework.context.support.GenericApplicationContext;
@SpringBootConfiguration(proxyBeanMethods = false)
public class DemoApplication
implements ApplicationContextInitializer<GenericApplicationContext> {
public static void main(String[] args) {
FunctionalSpringApplication.run(DemoApplication.class, args);
}
@Override
public void initialize(GenericApplicationContext context) {
context.registerBean("foobar", FunctionRegistration.class,
() -> new FunctionRegistration<>(new Foobar())
.type(FunctionType.from(Foo.class).to(Foo.class)));
}
}
class Foo {
private String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Foo(String name) {
this.name = name;
}
Foo() {
}
}
class Foobar implements Function<Foo, Foo> {
@Override
public Foo apply(Foo input) {
System.err.println("HI: " + input.getName());
return new Foo("hi " + input.getName() + "!");
}
}