package example; import java.util.function.Function; import org.springframework.boot.SpringBootConfiguration; import org.springframework.cloud.function.context.FunctionRegistration; import org.springframework.cloud.function.context.catalog.FunctionTypeUtils; import org.springframework.context.ApplicationContextInitializer; import org.springframework.context.support.GenericApplicationContext; @SpringBootConfiguration public class FunctionConfiguration implements ApplicationContextInitializer { /* * You need this main method (empty) or explicit example.FunctionConfiguration * in the POM to ensure boot plug-in makes the correct entry */ public static void main(String[] args) { // empty unless using Custom runtime at which point it should include // FunctionalSpringApplication.run(FunctionConfiguration.class, args); } @Override public void initialize(GenericApplicationContext context) { Function function = (str) -> str + str.toUpperCase(); context.registerBean("uppercase", FunctionRegistration.class, () -> new FunctionRegistration<>(function).type(FunctionTypeUtils.functionType(String.class, String.class))); } }