如何使Drools KnowledgeAgent依赖于具有Spring配置的自定义组件?
我的KnowledgeAgent设置为如何使Drools KnowledgeAgent依赖于具有Spring配置的自定义组件?,spring,drools,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 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。这方面的spring配置是
<bean id="changesetHandler" class="ChangesetHandler" autowire="byName" lazy-init="true" />
这里的问题是change-set.xml是由我的自定义组件生成的,但我无法将Drools KnowledgeAgent组件设置为依赖于它,因为它本身似乎没有依赖于属性的属性。鉴于知识代理侦听更改,它应该在bean生成更改集后立即重新加载知识库。为什么不先加载一个默认的空变更集,然后在动态变更集生成后再加载呢
就我个人而言,我避免使用Drools Spring组件。我发现在我的应用程序中创建一个包含我的知识库的服务更容易。然后,我可以在该服务中定义我喜欢的任何依赖项,并确保任何初始化都已完成。感谢@Steve,这是一个很好的解决方法,可以“手动”从服务加载更改集,并跳过这部分的xml配置。我使用的是Grails,所以我对使用Spring非常感兴趣。我一直都在使用Spring。我只是不使用口水弹簧的东西。:)