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