Каковы причины использования нулевых проверок в пружинном автоподстановке?
Например, я часто вижу код, подобный следующему:
@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': ожидается впо крайней мере 1 бин, который считается кандидатом на автопроводку.
Конечно, есть некоторые угловые случаи, в которых при определенных условиях возможно автоматическое подключение нулевого бина.Но насколько важны эти случаи в действительно хорошо разработанном коде?