Spring 5 增加了对Spring API的Null安全性的支持。现在我们也可以使用@Nullable
来指示可选的注入点。
但是当我们应该使用@Nullable
依赖时,我无法理解用例?
spring文档没有关于@Nullable
依赖项
@Component
public class SomeClass {
@Nullable
@Autowired
private MyService service;
public void someMethod()
{
service.someMethod();
}
}
答案 0 :(得分:4)
现在我们也可以使用@Nullable来指示可选的注入点。
我认为,如果您的依赖不是强制性的,那就有意义了
没有e = ElementTree.parse('/tmp/test.xml')
:
@Nullable
现在使用此代码:
@Autowired(required = false)
private MyService service;
您可以使用标准方式传达该字段可能为@Nullable
@Autowired
private MyService service;
根据{{3}},标准方法允许利用支持此注释的工具:
利用JSR 305元注释来指示Java中的可空性 支持JSR 305的常用工具,并由Kotlin用来推断 Spring API的可空性。
请注意,依赖关系中的null
是其中一种情况
在javadoc上,您还可以阅读:
一个常见的Spring注释,用于声明带注释的元素 在某些情况下无效。
还有:
应该在参数,返回值和字段级别使用。方法 override应该重复父@Nullable注释,除非它们表现出来 不同。
因此,装饰方法返回也是有道理的:
@Nullable
或参数:
@Nullable
public Foo doThat() {
...
}