Method entry point resolver是比较常用的entry point resolver。它根据用户提供的方法名以及Mule Message的Payload类型来匹配entry point。它的使用方式如下:
<method-entry-point-resolver>
<include-entry-point method="MethodEntryPointMethod1"/>
<include-entry-point method="MethodEntryPointMethod2"/>
</method-entry-point-resolver>
这里指定了两个方法名,Mule ESB在匹配entry point时会先查找匹配第一个方法名的方法,如果没有找到,再查找匹配第二个方法名的方法,只要找到一个匹配的方法,会直接执行这个方法获得结果,而不会匹配其他匹配的方法。例如,我们在TestComponent类中定义了两个方法:
public void MethodEntryPointMethod1(String message)
{
logger.info("MethodEntryPointMethod1's message is:" + message);
}
public void MethodEntryPointMethod2(String message)
{
logger.info("MethodEntryPointMethod2's message is:" + message);
}
在流程文件里设置使用method entry point resolver
<component doc:name="Java">
<entry-point-resolver-set>
<method-entry-point-resolver>
<include-entry-point method="MethodEntryPointMethod1"/>
<include-entry-point method="MethodEntryPointMethod2"/>
</method-entry-point-resolver>
</entry-point-resolver-set>
<spring-object bean="methodEntryTest"/>
</component>
运行项目,可以看到MethodEntryPointMethod1方法被匹配执行
如果我们修改MethodEntryPointMethod1的参数类型为int,这和mule message的payload类型不匹配,MethodEntryPointMethod2方法将被匹配执行。
来源:oschina
链接:https://my.oschina.net/u/237688/blog/733451