Method entry point resolver是比较经常使用的entry point resolver。它根据用户提供的方法名以及Mule Message的Payload类型来匹配entry point。它的使用方式以下:java
<method-entry-point-resolver> <include-entry-point method="MethodEntryPointMethod1"/> <include-entry-point method="MethodEntryPointMethod2"/> </method-entry-point-resolver>
这里指定了两个方法名,Mule ESB在匹配entry point时会先查找匹配第一个方法名的方法,若是没有找到,再查找匹配第二个方法名的方法,只要找到一个匹配的方法,会直接执行这个方法得到结果,而不会匹配其余匹配的方法。例如,咱们在TestComponent类中定义了两个方法:spring
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 resolvercode
<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方法被匹配执行component
若是咱们修改MethodEntryPointMethod1的参数类型为int,这和mule message的payload类型不匹配,MethodEntryPointMethod2方法将被匹配执行。xml