У меня есть контроллеры Spring, которые используют инъекцию конструктора для удовлетворения зависимостей уровня сервиса. Работает хорошо. Теперь в организации есть какой-то старый код, который дважды проверяет правильность зависимостей. Я считаю это анти-шаблоном, так как это код, связанный с проблемой сквозной резки, о которой не должен беспокоиться инжектируемый клиент.Повторная проверка введенных полей весной
Если зависимость не может быть решена, то контейнер IoC (весна) поднимет соответствующую ошибку (UnSatisfiedLink или что-то еще), клиент, использующий эту службу, должен быть агностик относительно того, как или если эти зависимости были правильно введены. что все зависимости инициализированы и готовы к работе. В этом суть использования IoC в первую очередь.
Например, я вижу это:
public MyController(MyService myService) {
this.myService = myService;
}
, а затем:
@PostConstruct
public void afterPropertiesSet() throws Exception {
if(myService == null) { // unecessary in my opinion
throw new IllegalArgumentException("MyService is not set!");
}
}
Этих типов «двойных проверки» является ненужным и привести к перекрестному режущим относятся кода беспорядок, мнение?
_ «мнения?» _ Это не вопрос мнения, а факт, который вы можете легко доказать или опровергнуть (мнения, основанные на вопросах не имеют места на SO, в любом случае) – kryger