【发布时间】:2018-05-29 15:29:14
【问题描述】:
在 spring autowring 中使用 null 检查的原因是什么?
例如,我经常看到这样的代码:
@Component
public class MyComponent {
private final MyService myService;
@Autowired
public MyComponent(MyService myService) {
Assert.notNull(myService, "myService must not be null");
this.myService = myService;
}
}
Assert.notNull() 打电话到这里有什么意义?
如果我忘记将 MyService 声明为 Bean Spring 将失败:
NoSuchBeanDefinitionException:没有可用的“com.company.MyService”类型的合格 bean:预计至少有 1 个符合自动装配候选资格的 bean。
当然,在某些特殊情况下,可以自动装配空 bean。但这些情况在真正设计良好的代码中有多重要?
【问题讨论】:
标签: java spring dependency-injection spring-ioc