Согласен, но это не имеет никакого отношения к заголовку статьи.
И Spring DI и CDI дают возможность инкапсулировать зависимости, в том числе циклические. Что открывает возможности модуляризации и независимой разработки. И освобождает разработчика от части задач, делегируя их компилятору и контейнеру.
Spring DI был создан как альтернатива Service Locator Pattern. Service Locator Pattern, в свою очередь, решал проблему модульной разработки, когда сервис и его клиенты разрабатываются разными проектами/командами/компаниями, в разное время. В такой ситуации нет практического способа «не допустить».
В исходном примере есть циклическая зависимость между child и parent.
В последнем варианте — через конструктор — такой зависимости нет. Если её вернуть обратно, то невозможно будет создать бины.
Именно для того, чтобы решить эту проблему и было разделено создание бина через конструктор по умолчанию, injections, и инициализация через @PostConstruct.
Здесь, наверное, имелось ввиду trunkbaseddevelopment.com
Исправьте, пожалуйста.
И Spring DI и CDI дают возможность инкапсулировать зависимости, в том числе циклические. Что открывает возможности модуляризации и независимой разработки. И освобождает разработчика от части задач, делегируя их компилятору и контейнеру.
Spring DI был создан как альтернатива Service Locator Pattern. Service Locator Pattern, в свою очередь, решал проблему модульной разработки, когда сервис и его клиенты разрабатываются разными проектами/командами/компаниями, в разное время. В такой ситуации нет практического способа «не допустить».
В последнем варианте — через конструктор — такой зависимости нет. Если её вернуть обратно, то невозможно будет создать бины.
Именно для того, чтобы решить эту проблему и было разделено создание бина через конструктор по умолчанию, injections, и инициализация через @PostConstruct.