我實現了使用優秀ws-lite library委派到多個重載方法在常規
不幸的是,庫不AFAIK附帶日誌支持針對合作伙伴皁後端一個小的客戶端,但我發現this博客,描述如何使用功能組合來委託。
現在我想爲原始SoapClient類中的所有類型的發送方法添加日誌記錄。我確信使用一些Groovy元編程黑魔法是可能的,但是我還沒有找到任何關於如何實現的例子,而且在動態元編程方面我仍然是一個小菜鳥。 我想要的是添加具有相同簽名的方法,在委託給原始方法之前調用日誌記錄和錯誤處理。
我也希望只有一個地方能夠讓我保持乾爽,並且在API發展時無需適應任何可能的未來重載版本。
的的SOAPClient具有發送方法,如:
public SOAPResponse send(java.util.Map requestParams, groovy.lang.Closure content)
public SOAPResponse send(java.util.Map requestParams, java.lang.String content)
public SOAPResponse send(java.util.Map requestParams, wslite.soap.SOAPVersion soapVersion, java.lang.String content)
現在我可以擴展類,重載的方法,並用我的生命去。但我想知道Groovier(以及未來的證明)如何實現這一點。
這是否工作:http://naleid.com/blog/2010/09/11/adding-logging-around-all-of-the-methods -of-a-class-with-groovy/ –