如何使Drools KnowledgeAgent依赖于Spring配置的自定义组件?

时间:2014-07-15 08:03:39

标签: spring drools

我的KnowledgeAgent设置为

<drools:kagent kbase="kbase" id="knowledgeAgent" new-instance="false" >
    <drools:resources>
        <drools:resource source="classpath:change-set.xml" type="CHANGE_SET" />
    </drools:resources>  
  </drools:kagent>

因此它从类路径中扫描change-set.xml以获取资源。我还有另一个组件,它将根据磁盘上的规则文件动态生成change-set.xml。弹簧配置为

<bean id="changesetHandler" class="ChangesetHandler" autowire="byName" lazy-init="true" /> 

这里的问题是我的自定义组件生成了change-set.xml,但是我无法将Drools KnowledgeAgent组件设置为依赖于它,因为它遵循它自己的schema似乎没有depends-on属性。

1 个答案:

答案 0 :(得分:1)

鉴于知识代理侦听更改,一旦bean生成更改集,它就应该重新加载知识库。为什么不在最初加载默认的空更改集,然后在生成时加载动态更改集?

我个人避免使用Drools-Spring组件。我发现在我的应用程序中创建服务更容易,这保留了我的知识库。然后,我可以在该服务中定义我喜欢的任何依赖项,并确保已完成任何初始化。