Welcome to Software Development on Codidact!
Will you help us build our independent community of developers helping developers? We're small and trying to grow. We welcome questions about all aspects of software development, from design to code to QA and more. Got questions? Got answers? Got code you'd like someone to review? Please join us.
How to do function composition in Spring Cloud Stream when using classes
I'm working on a proof of concept for a Spring Cloud Stream application. I want to define my processing logic using classes that implement Function
, Consumer
, or Supplier
.
I understand that Spring Cloud Stream allows for function composition using function beans, and declaring them with spring.cloud.function.definition
.
What I would like to know is if there is a way to achieve the same function composition behavior when using classes, instead of function beans. For instance, this is how I would like to define the application's functionality:
@Component
public class MessageValidator implements Function<String, String> {
@Override
public String apply(final String message) {
// Validation logic
return message;
}
}
@Component
public class FilterFunction implements Function<String, String> {
@Override
public String apply(final String message) {
// Filtering logic
return message;
}
}
@Component
public class ProcessFunction implements Function<String, String> {
@Override
public String apply(final String message) {
// Processing logic
return message;
}
}
And then declare the order: MessageValidator
> FilterFunction
> ProcessFunction
.
Is there a way to declare the functionality using these classes and have Spring Cloud Stream compose them in the same way it does with function beans? If so, how can I achieve this?
0 comment threads