在Drools中声明和使用全局变量时,全局变量是否完全绑定到会话,因为一旦会话关闭,全局变量也会被处理掉?
有没有办法在drools内存中存储数据,任何时候都可以被多个会话访问而不需要每次重新加载?
答案 0 :(得分:1)
DRL global是一个POJO,只要存在至少一个引用它就存在。在setGlobal之后,会话保留一个(附加)引用,该引用可通过全局的名称访问,由DRL编译器提供。如果会话被处理掉,这个参考文献就会消失。
术语" Drools记忆"没有意义。有一个会话的工作记忆,它是POJO的容器,已被插入成为事实;如果会话被释放,则丢弃这些引用。有全局变量。在DRL代码中,您可以访问已导入的所有内容,包括Java类中的(公共)静态变量。