我试图通过传递参数来调用bean的公共方法。但是我无法运行它。这是我的示例蓝图代码(我写了from
子句但是这里我只粘贴了必要的代码) -
<bean id="ProcessorRef" class="com.healthedge.customer.THC.extractor.ProcessorClass">
<to uri="bean:ProcessorRef" />
处理器类 -
public class ProcessorClass{
public String whatAmI(String str) {
return "I am "+str;
}
}
现在在上面的示例中如何使用blueprint中的参数调用whatAmI
方法?TIA
答案 0 :(得分:4)
您可以直接调用所需的方法
foreach
答案 1 :(得分:1)
如果你要传递给whatAmI方法的值在标题中,你可以这样做。
<to uri="bean:ProcessorRef?method=whatAmI(${header.xyz})" />
如果是常量字符串,则可以直接将字符串放在${header.xyz}
另一种选择是将whatAmI方法修改为
public class ProcessorClass{
public String whatAmI(Exchange exchange) {
// exchange has many methods, with which you can access headers and body.
}
}
在这种情况下,您可以像这样编写路线
<to uri="bean:ProcessorRef?method=whatAmI" />
就个人而言,我更喜欢第二种选择,因为它可以让您访问完整的交换对象,这将包含所有细节。