我有一个SWF工作流决策程序,我需要传递一组值。我已经有一个类(POJO),它具有所有这些作为实例变量。所以我应该将POJO作为输入参数传递或传递单个字段。
@Workflow
@@WorkflowRegistrationOptions(....)
public interface WorkerClass {
@Execute(version = "1.0")
void generate(String a, int b, List<String> c, String d);
}
or
void generate(POJO pojo);
POJO是
class POJO {
private String a;
private int b;
private List<String> c;
private String d;
//Getter and setters
}
哪个最好?
P.S:我需要从SWF控制台运行它
答案 0 :(得分:0)
作为一般设计模式,我更喜欢将POJO传递给初始化,因为向其添加字段是向后兼容的。 AWS Flow Framework支持这两种方法。默认情况下,它使用JsonDataConverter来序列化函数参数。您可以随时编写自己的工作流输入字符串字段解析到POJO结构(并在@Workflow注释中指定它),或者以JSON转换器期望的方式指定参数。了解默认格式的最简单方法是使用生成的外部客户端启动工作流,然后查看工作流WorkflowExecutionStartedEvent中的输入字段。