Tôi quen với việc đóng cửa groovy bình thường như thế nàyGroovy Đóng giải thích
def printSum = {a,b ->
println a+b
}
printSum(5,7) // 12
Tuy nhiên, tôi đã xem qua mã từ SpringWS plugin mà tôi có một thời gian hiểu biết cứng:
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)
}
Tôi hiểu rằng ở trên là một đóng cửa.
Nó đang được sử dụng như thế này:
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")
}
}
}
nếu serviceURL
đã được thông qua năm sau đó ở đâu là tải trọng?
Ai đó có thể giải thích đoạn trích này một cách chi tiết không?
Dường như tải trọng được tiêm bởi các plugin với một số loại phương pháp đánh chặn. – moskiteau
Dường như các công cụ trong niềng răng là trọng tải ('HolidayRequest'). Có lẽ Groovy có một số đường cú pháp cho phép bạn chỉ định các đối số hàm theo cách đó?Hãy thử kiểm tra nó bằng cách gọi 'printSum (5) {7}' hoặc một cái gì đó tương tự như vậy. – rliu