Вы можете использовать:
1. @PostConstruct
2. InitializingBean
интерфейс
3. <bean class="your bean class" init-method="your init method"/>
Атрибут: INIT-метод: Имя метода пользовательской инициализации для вызова после установки боба свойства. Метод не должен иметь никаких аргументов, , но может вызвать любое исключение. Это альтернатива , реализующая интерфейс InitializingBean Spring или маркирование метода с помощью аннотации PostConstruct.
Это альтернатива: если ваша программа полностью аннотируется, отправьте аннотацию, если XML идет на XML (мне не нравится смешивание, и вам не нужно спрашивать себя, реализуете ли вы функцию с аннотом или xml)
EDIT:
- слушатель контекста: будет вызываться каждый контекст обновления (как правило, один раз, при запуске)
InitializingBean
или @PostConstruct
: Нанести на жизненном цикле бина называется каждый раз, когда компонент создается (зависит от сфера)
В вашем случае с использованием контекста слушателя:
- вызова Init() ожидает, пока инициализации компонента() завершения, но вы уверены, в какое время контейнерной жизненного цикла она называется.
- Вы потеряли возможность ленивой инициализации,
- но получить возможность оправиться от ошибки (возможно, принимая на работу без данных в памяти)
С InitializingBean
вы:
- есть (иначе каждый раз, когда вы подключаете bean-компонент, вызывается метод init()),
- вы потеряли возможность восстановления в случае сбоя, так как цикл инициализации bean не в ваших руках (или будет более трудно восстановить)
- Вы получаете возможность ленивых инициализаций (время запуска уменьшается)
В вашем случае, если вы используете одноплодный боб без lazy- init и не нуждаются в восстановлении ошибок в случае отказа, нет различий вообще
Привет @bellabax, спасибо за ваш ответ. Я понимаю, что эти формы, которые вы упомянули, могут использоваться для инициализации инициализирующего компонента.Однако мой вопрос связан скорее с различием архитектуры между использованием InitiaizingBean или ApplicationContextListener для этого. –
Отредактировал мой ответ, потому что писать редактировать в комментариях нечитаемый текст –