Почему использование @PostConstruct?

В управляемом компоненте, @PostConstruct назван после обычного конструктора Object Java.

Почему я использовал бы @PostConstruct инициализировать бобом, вместо постоянного конструктора самим?

274
задан Jan 4 August 2010 в 03:32
поделиться

2 ответа

  • , потому что при вызове конструктора компонент еще не инициализирован, т.е. никакие зависимости не внедряются. В методе @PostConstruct компонент полностью инициализирован, и вы можете использовать зависимости.

  • , потому что это контракт, который гарантирует, что этот метод будет вызван только один раз в жизненном цикле компонента. Может случиться (хотя и маловероятно), что контейнер создает экземпляр компонента несколько раз во внутренней работе, но это гарантирует, что @PostConstruct будет вызван только один раз.

382
ответ дан 23 November 2019 в 02:11
поделиться

Если ваш класс выполняет всю свою инициализацию в конструкторе, то @PostConstruct действительно является избыточным.

Однако, если в ваш класс внедрены зависимости с использованием методов установки, то конструктор класса не может полностью инициализировать объект, и иногда некоторая инициализация должна быть выполнена после того, как все методы установки были вызваны, отсюда вариант использования @PostConstruct .

58
ответ дан 23 November 2019 в 02:11
поделиться
Другие вопросы по тегам:

Похожие вопросы: