7. Null安全性
虽然Java不允许用它的类型系统来表示NULL安全性,但是Spring框架现在在org.springframework.lang包中提供以下注释,以允许您声明API和字段的可空性:
@Nullable:注释,指示特定参数、返回值或字段可以为空。
@NonNull:表示特定参数、返回值或字段不能为空的注释
@NonNullApi:包级别的注释,声明非空作为参数和返回值的默认语义。
@NonNullFields:包级别的注释,声明非空字段作为字段的默认语义。
Spring框架本身利用这些注释,但它们也可以用于任何基于Spring的Java项目中,以声明NULL安全的API和可选的NULL安全字段。尚不支持泛型类型参数、varargs和数组元素为空性,但应在即将发布的版本中提供,有关最新信息,请参阅 SPR-15942。Nullability 声明预计将在Spring框架版本之间进行微调,包括较小的版本。方法体内部使用的类型的Nullability超出了此功能的范围。
其他公共库(如Reactor和Spring Data)提供了NULL安全API,这些API使用类似的nullability,为spring应用程序开发人员提供了一致的总体体验。