Annotations
Spring Framework 也利用 Kotlin 空安全 确定 HTTP 参数是否为必需的,而无需显式定义 required
属性。这意味着将 @RequestParam name: String?
视为非必需的,相反,将 @RequestParam name: String
视为必需的。此特性也在 Spring Messaging @Header
注解中受支持。
类似地,使用 @Autowired
、@Bean
或 @Inject
进行的 Spring Bean 注入会使用此信息来确定 Bean 是否必需。
例如,@Autowired lateinit var 东西: 东西
表示必须在应用程序上下文中注册类型为 东西
的 Bean,而如果不存在此类 Bean,则 @Autowired lateinit var 东西: 东西?
不会引发错误。
遵循相同的原则,@Bean fun 玩耍(玩具: 玩具,车: 车?) = 巴兹(玩具,车)
表示必须在应用程序上下文中注册类型为 玩具
的 Bean,但是类型为 车
的 Bean 可能存在或不存在。自动装配构造函数参数同样适用此行为。
如果你对具有属性或主要构造器参数的类使用 bean 验证,则可能需要使用 注释使用站点目标,如 |