Files
spring-cloud-function/spring-cloud-function-samples/function-sample-aws-custom/src/main/java/com/example/LambdaApplication.java
2022-04-20 19:56:36 +02:00

42 lines
1.3 KiB
Java

package com.example;
import java.util.function.Function;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.springframework.boot.autoconfigure.SpringBootApplication;
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;
@SpringBootApplication
public class LambdaApplication
implements ApplicationContextInitializer<GenericApplicationContext> {
private static Log logger = LogFactory.getLog(LambdaApplication.class);
public Function<String, String> uppercase() {
return value -> {
logger.info("Processing: " + value);
if (value.equals("error")) {
throw new IllegalArgumentException("Intentional");
}
return value.toUpperCase();
};
}
public static void main(String[] args) {
FunctionalSpringApplication.run(LambdaApplication.class, args);
}
@Override
public void initialize(GenericApplicationContext context) {
context.registerBean("uppercase", FunctionRegistration.class,
() -> new FunctionRegistration<>(uppercase()).type(
FunctionType.from(String.class).to(String.class)));
}
}