私はこれらのような通常のグルーヴィーなクロージャーに精通しています
def printSum = {a,b ->
println a+b
}
printSum(5,7) // 12
ただし、SpringWS プラグインから、理解に苦しむコードに出くわしました。
def withEndpointRequest = { url, payload ->
def writer = new StringWriter()
def request = new MarkupBuilder(writer)
payload.delegate = request
payload.call()
def webServiceTemplate = new WebServiceTemplate()
def response = webServiceTemplate.sendToEndpoint(url, writer.toString())
new XmlSlurper().parseText(response)
}
上記が閉鎖であることを理解しています。
次のように使用されています。
def namespace = "http://www.myveryimportantcompany.com/hr/schemas"
def serviceURL = "http://localhost:8080/myapp/services"
def response = withEndpointRequest(serviceURL) {
HolidayRequest(xmlns: namespace) {
Holiday {
StartDate("2006-07-03")
EndDate("2006-07-07")
}
Employee {
Number("42")
FirstName("Russ")
LastName("Miles")
}
}
}
serviceURL
が渡されている場合、ペイロードはどこにありますか?
誰かがこのスニペットを詳しく説明してもらえますか?