java 调用 spl 作为独立的计算引擎疑问
java 调用 spl 的时候,传递参数采用
JDBC 中 PreparedStatement.setObject,这种方式传递。当前传递是基本类型,如 String,int
如果 java 中的是一个 List,这个 Project 嵌套了 List
, 希望把这个结构体传给 spl,即将业务的逻辑从 java 通过 jdbc 的接口转移到 spl 中。
那么传递的参数 ,必须要先该结构体 序列化为 string 吗,然后在 spl 中用 json 函数在转吗。还是有其他的方法。
我感觉,如果 java 的参数传递 到 spl 中,各种类型都支持的话。spl 可以替换 java 的大部分执行逻辑。这样程序比较简单。
List projectlist
class Project{
private String id;
private String pname;
Private List sublist;
}
需要对这个结构体进行一些集合运算。如果采用 java 的 Stream 写的代码比较多,希望将该参数传入到 spl 中,利用 spl 的计算逻辑来计算。
当前需要将该结构体传入到 spl 中。是否需要将其序列化为 json string 。是否有长度限制? spl 接受这种参数,是否通过 json 函数转为序列?
希望 SPL 能代替 Java 中的针对集合处理的 Steam,不知道想法是否可以?
List 对应于 SPL 的序列,Project 对应于 SPL 的记录,Project 组成的 List 就对应于 SPL 的排列或序表
由于在 java 中组装排列和序表需要熟悉 SPL 底层的 java api,所以可以先拼成 json 串,然后在 SPL 里用 json 函数还原成嵌套序表
原则上所有的业务逻辑都可以也应该用 SPL 中写出来,而不要用 Java(以及 Stream 这些),也就不存在从 Java 传递复杂数据类型进来的事情。
Java 只是个壳子,负责一些流程调度任务。不要在 Java 中定义和业务相关的数据类,更不要把集合数据在 Java 和 SPL 中传来传去,非常麻烦也没有必要。
有个别需要外部支持的功能,应该是用 SPL 来调用 Java 做。