我正在研究Spring安全性,在官方Spring文档中发现了一个代码片段,我无法解释,Idea显示它在语法上不正确
@Bean
open fun filterChain(http: HttpSecurity): SecurityFilterChain {
http {
authorizeRequests {
authorize(anyRequest, authenticated)
}
formLogin { }
httpBasic { }
}
return http.build()
}
https://docs.spring.io/spring-security/reference/servlet/configuration/kotlin.html
谁能给予我一个提示,如何解析它?我所知道的最接近的Kotlin语法是“multiple methods with”语句,但它是不同的。
此外,术语anyRequest和authenticated看起来未声明/未绑定...
https://kotlinlang.org/docs/idioms.html#call-multiple-methods-on-an-object-instance-with
1条答案
按热度按时间icomxhvb1#
这里面有两件事可能牵涉其中。
使用lambda参数调用函数
如果函数的最后一个参数允许传递lambda函数,则调用lambda
{ }
的函数/构造器可以工作。以下所有内容都是等效的:功能接口
Kotlin允许单函数接口,也称为单抽象方法。参见文档。有了这个,你可以声明一个函数而不给出一个实现,这对库很有用。