Несмотря на кажущуюся сложность, жизненный цикл бинов крайне прост и лёгок для понимания. После создания экземпляра бина, могут понадобиться некоторые действия для того, чтобы сделать его работоспособным. Также при удалении бина из контейнера, необходима очистка.
В документации указан список того, что происходит с бином от момента создания до момента уничтожения. Но для начального понимания нам необходимо разобраться в двух наиболее важных методах, которые вызываются во время инициализации бина и его уничтожения.
Для управления созданием и уничтожением бина у нас есть параметры init-method и destroy-method.
Вызов функции инициализации
Интерфейс pro.springframework.beans.dactory. InitializingBean имеет только один метод – void afterPropertiesSet() throws Exception
А вот пример класса, который имплементирует InitializingBean:
Если мы конфигурируем бин с помощью XML-файла, то мы можем использовать атрибут init-method, чтобы определить, что именно будет происходить при создании экземпляра бина:
Класс SimpleBean.java
Конфигурационный файл configure-message-bean.xml
Вызов функции деструкции (уничтожения)
Интерфейс org.springframework.beans.factory.DsiposableBean также имеет только один единственный метод
void destroy() throws Exception.
Если же мы конфигурируем бин с помощью xml-файла, то мы должны использовать атрибут destroy-method для того, чтобы определить, что именно будет происходить при уничтожении экземпляра бина.
Класс SimpleBean.java
Конфигурационный файл configure-message-bean.xml
В общем случае не рекомендуется использовать InitializingBean и DisposableBean, так как конфигурирование с помощью XML-файла более удобно благодаря возможности иметь собственные методы.
Пример небольшого приложения:
Исходный код проекта можно скачать по ЭТОЙ ССЫЛКЕ.
Структура проекта
Класс Message.java
Класс MessageRunner.java
Конфигурационный файл message-bean.xml
Результат работы программы
Если у Вас есть много бинов, и по одному методу инициализации и уничтожения, которые вы хотите использовать ко всем экземплярам бинов, Вы может не прописать их для каждого бина отдельно, а объявить их следующим способом:
В этот раз мы изучили основы жизненного цикла бинов. Другие аспекты жизненного цикла мы рассмотрим в последующих статьях.