Дмитрий Бабанин @lord_detson
Java Software Developer
Information
- Rating
- Does not participate
- Location
- Минск, Минская обл., Беларусь
- Date of birth
- Registered
- Activity
Specialization
Software Developer, Backend Developer
Senior
From 8,000 $
Java
Java Spring Framework
Spring Boot
Swing
JavaFX
Apache Maven
Intellij IDEA
Git
Docker
Jenkins
Спасибо большое) Вы, кстати, тоже затронули интересную тему, которую я захотел раскрыть чуть подробнее.
Я реализовал еще один тестовый стэнд, который ответил бы на вопросы:
Есть ли отличие в жизненных цыклах Spring Framework между версиями?
В версии 1.2.9 статический блок инициализации вызывается в самом начале.
Это отличается от версии 2.5.6 и более поздних версий, поскольку статический блок инициализации вызывается после
BeanFactoryPostProcessor
иBeanPostProcessor
.Методы уничтожения
BeanFactoryPostProcessor
иBeanPostProcessor
вызываются перед методами уничтожения бинов.Это самая большая разница между версиями. Более поздние версии просто добавили новые инструменты интеграции.
Я также заметил, что методы обратного вызова инициализации и уничтожения вызываются для
BeanFactoryPostProcessor
, хотя он не был в конфигурации на основе аннотаций. Это основное отличие между конфигурациями на основе XML и аннотаций.Есть ли отличия в жизненных цыклах Spring Framework и Spring Boot?
Ответ: нет, так как Spring Boot внутри себя использует тотже Spring Framework.
Стоит ли бояться изменений жизненного цикла в будущих версиях?
Можно не бояться использовать средства интеграции Spring, так как порядок жизненного цикла скорее всего не изменится в последующих версиях.
Также можно заметить, что в целом разработчики фреймворка только добавляют новые инструменты, а не изменяют старые, чтобы сохранить обратную совместимость и не создавать дополнительные боли при переходе на новую версию фреймворка.
Конечно, вы должны быть осторожны с жизненным циклом, как и с любым другим инструментом, и вести осмысленную документацию.
Более подробно вы можете прочитать перейдя по ссылке.
Да, вы правы. Большое спасибо за подсказку! Я исправил это)
Не буду настаивать на том, что бы вы поверили, что это я написал на основе своих заметок в Obsidian. В я даже могу понять почему у вас может складываться такое впечатление. Я старался все показать и объяснить достаточно кратко и емко. И я думаю, что ChatGPT придерживаеться такомуже принципу.
Мне главное, что бы статья была полезная для сообщества программистов, а все остальное не важно)
Спасибо, что уделили время!