🧩 От конфигурации к динамике. Новый API по созданию бинов в Spring
В Spring Framework 7 появился новый API — BeanRegistry, который упрощает и расширяет возможности по динамической регистрации бинов.
Это особенно актуально, когда невозможно заранее предсказать, сколько компонентов потребуется, как в случае со Spring Data. В новой статье от эксперта сообщества Spring АйО, Михаила Поливахи, вы узнаете:
🔵 Как Spring Data справлялась с динамической регистрацией раньше;
🔵 Какие подходы регистрации существовали до
🔵 Как новый API связан со Spring AOT.
📚 Читать на Хабре: https://habr.com/ru/companies/spring_aio/articles/915512/
Подписывайтесь:
😌 @spring_aio
В Spring Framework 7 появился новый API — BeanRegistry, который упрощает и расширяет возможности по динамической регистрации бинов.
Это особенно актуально, когда невозможно заранее предсказать, сколько компонентов потребуется, как в случае со Spring Data. В новой статье от эксперта сообщества Spring АйО, Михаила Поливахи, вы узнаете:
BeanRegistrar
, как они работали;📚 Читать на Хабре: https://habr.com/ru/companies/spring_aio/articles/915512/
Подписывайтесь:
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥23❤10👍8
Для тех, кто был слишком занят на неделе или просто пропустил некоторые посты, публикуем дайджест!
– Spring против Quarkus , правильные тесты, AOT-репозитории спасут Spring | Spring АйО Подкаст №21
– Архитектурные принципы Spring Security. Часть третья
– День Рождения Spring АйО!
– IntelliJ IDEA Conf 2025 — как это было?
– От конфигурации к динамике. Новый API по созданию бинов в Spring
⚡️Spring Now 2025
– Артём Гордиевич: Spring Boot 2.x → 3.x: таков путь миграции
– Amplicode: Умное делегирование методов из/в Spring-объекты
– JPoint: Максим Сидоров — «Как избавиться от рекурсии и исправить глупую ошибку в Google»
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10🔥6❤4
Media is too big
VIEW IN TELEGRAM
💬 Аудио версию подкаста можно найти в комментариях
Подписывайтесь:
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥17❤5👍4😁1
🚀 Spring Data JPA и Hibernate: ориентируемся на производительность. Часть 1
Команда Spring АйО перевела и адаптировала доклад Мацея Валковяка “Performance oriented Spring Data JPA & Hibernate”, в котором на наглядных примерах рассказывается, как существенно улучшить производительность приложения, оптимизировав его взаимодействие с БД.
Доклад будет опубликован тремя частями. В первой части будет рассказано об управлении подключениями к базе данных и как простой оптимизацией такого управления сделать приложение намного более быстрым.
📚 Читать на Хабре: https://habr.com/ru/companies/spring_aio/articles/916818/
Подписывайтесь:
😌 @spring_aio
Команда Spring АйО перевела и адаптировала доклад Мацея Валковяка “Performance oriented Spring Data JPA & Hibernate”, в котором на наглядных примерах рассказывается, как существенно улучшить производительность приложения, оптимизировав его взаимодействие с БД.
Доклад будет опубликован тремя частями. В первой части будет рассказано об управлении подключениями к базе данных и как простой оптимизацией такого управления сделать приложение намного более быстрым.
📚 Читать на Хабре: https://habr.com/ru/companies/spring_aio/articles/916818/
Подписывайтесь:
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥28👍11❤7
🌀 Оверинжиниринг в луковичной и гексагональной архитектурах
Команда Spring АйО перевела статью, которая рассказывает о том, как луковичная и гексагональная архитектура часто используется программистами в неоправданно сложном варианте, взятом из учебника, и как эти архитектурные стили можно упростить, получив от этого существенные преимущества в плане затрат на разработку и поддержку.
📚 Читать на Хабре: https://habr.com/ru/companies/spring_aio/articles/917172/
Подписывайтесь:
😌 @spring_aio
Команда Spring АйО перевела статью, которая рассказывает о том, как луковичная и гексагональная архитектура часто используется программистами в неоправданно сложном варианте, взятом из учебника, и как эти архитектурные стили можно упростить, получив от этого существенные преимущества в плане затрат на разработку и поддержку.
📚 Читать на Хабре: https://habr.com/ru/companies/spring_aio/articles/917172/
Подписывайтесь:
Please open Telegram to view this post
VIEW IN TELEGRAM
👍21🔥10❤8
🎥 Уже завтра: праздничная трансляция в честь Дня Рождения Spring АйО!
13 июня в 18:00 по Москве встречаемся в прямом эфире — вспомним, с чего всё начиналось, пообщаемся с теми, кто делает Spring АйО живым и шумным проектом 🙌
В программе:
— Истории: поездка на Spring I/O
— Обсуждение главных новинок в Spring и Java за последний год
— Разгоны про AI, вайбкодинг и dev-жизнь
— Демки от экспертов: от Spring AI до фич в Hibernate (если успеем)
Также эксперты будут общаться с чатом. А если у вас уже есть какие-то вопросы экспертам – пишите в комментарии под этим постом или в личные сообщения канала.
🔗 Ссылка на трансляцию — завтра в канале. Не пропустите!
13 июня в 18:00 по Москве встречаемся в прямом эфире — вспомним, с чего всё начиналось, пообщаемся с теми, кто делает Spring АйО живым и шумным проектом 🙌
В программе:
— Истории: поездка на Spring I/O
— Обсуждение главных новинок в Spring и Java за последний год
— Разгоны про AI, вайбкодинг и dev-жизнь
— Демки от экспертов: от Spring AI до фич в Hibernate (если успеем)
Также эксперты будут общаться с чатом. А если у вас уже есть какие-то вопросы экспертам – пишите в комментарии под этим постом или в личные сообщения канала.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥26❤16👍10⚡1👎1🤩1
🎥 Сегодня — стрим в честь Дня Рождения Spring АйО!
В 18:00 по Москве встречаемся в прямом эфире: вспоминаем, как всё начиналось, обсуждаем новинки из мира Spring и Java, показываем демки и просто классно проводим время вместе с вами 🙌
🔗 Ссылки на трансляцию:
😉 СМОТРЕТЬ НА YOUTUBE
😄 СМОТРЕТЬ В VK ВИДЕО
🥰 СМОТРЕТЬ НА RUTUBE
Будет живой чат, возможность задать вопросы и, конечно, немного веселья
В 18:00 по Москве встречаемся в прямом эфире: вспоминаем, как всё начиналось, обсуждаем новинки из мира Spring и Java, показываем демки и просто классно проводим время вместе с вами 🙌
Будет живой чат, возможность задать вопросы и, конечно, немного веселья
Please open Telegram to view this post
VIEW IN TELEGRAM
2👍20🔥11❤8
Друзья, мы вышли в эфир. Заходите — будет интересно!
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥10❤8👍7
This media is not supported in your browser
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
12😁37👍7🔥6👎2🤯1
Для тех, кто был слишком занят на неделе или просто пропустил некоторые посты, публикуем дайджест!
– Так бины ты еще не создавал, функциональный захват API, акмеисты атакуют | Spring АйО Подкаст №22
– Spring Data JPA и Hibernate: ориентируемся на производительность. Часть 1
– Оверинжиниринг в луковичной и гексагональной архитектурах
– Праздничная трансляция в честь Дня Рождения Spring АйО!
– Amplicode: "Лучше, чем IntelliJ IDEA Ultimate? OpenIDE + Amplicode – профессиональная российская среда разработки"
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12🔥5❤4👎1
Наши друзья из Axiom JDK вместе с PVS-Studio проведут вебинар о том, как быстро и эффективно защищать Java-приложения. Будут разобраны темы ГОСТ, критических ошибок и процессов безопасной разработки. Будет показана на примерах работа с PVS-Studio и продуктами Axiom JDK, рассказано, как собрать безопасную инфраструктуру и реализовать РБПО.
👨💻 Полезно тимлидам и разработчикам
🔍 В программе:
– безопасная разработка и ГОСТы
– выявление критических ошибок
– безопасность контейнеров и JDK
– атаки на цепочки поставок
Вебинар пройдет 19 июня в 11:00
📌Участие бесплатное при условии предварительной регистрации
Please open Telegram to view this post
VIEW IN TELEGRAM
👍13❤5🔥5👎1
Media is too big
VIEW IN TELEGRAM
💬 Аудио версию подкаста можно найти в комментариях
Подписывайтесь:
Please open Telegram to view this post
VIEW IN TELEGRAM
👍17❤8🔥8😁3
🎉 Spring Now 2025 завершён — все записи уже выложены!
Спасибо всем, кто был с нами 6 марта. Мы выложили все доклады — смотрите на удобной платформе. Ссылки на плейлисты:
😉 СМОТРЕТЬ НА YOUTUBE
😄 СМОТРЕТЬ В VK ВИДЕО
🥰 СМОТРЕТЬ НА RUTUBE
🎁 Подарки уже отправлены 10-рым счастливчикам, оставившим обратную связь после конференции
Если у вас есть идеи или пожелания по Spring Now 2026 — будем рады услышать! Делитесь в комментариях.
Приятного просмотра и до новых встреч! 💚
#spring_now_2025
Спасибо всем, кто был с нами 6 марта. Мы выложили все доклады — смотрите на удобной платформе. Ссылки на плейлисты:
🎁 Подарки уже отправлены 10-рым счастливчикам, оставившим обратную связь после конференции
Если у вас есть идеи или пожелания по Spring Now 2026 — будем рады услышать! Делитесь в комментариях.
Приятного просмотра и до новых встреч! 💚
#spring_now_2025
Please open Telegram to view this post
VIEW IN TELEGRAM
25🔥18👍8❤5
🛑 Использование сессии без транзакции — не повторяйте это дома!
На протяжении многих лет мы сталкивались с удивительно большим количеством людей, которые настаивают на том, что им нужно обращаться к базе данных «без транзакции» — под этим мы понимаем выполнение запросов с autoСommit = true в рамках JDBC. Мы уверены, что это почти всегда ужасная идея, и что большинство людей, поступающих так, просто заблуждаются относительно аспектов изоляции транзакций или не понимают, что использование автокоммита означает для управления пулом JDBC-соединений.
Тем не менее Hibernate это, пусть неохотно, но позволяет.
Если вы всё же решитесь на этот странный шаг:
🛑 для начала убедитесь, что вы полностью осознаёте: база данных не сможете помочь Вам обеспечить привычную изоляцию транзакций,
🛑 затем установите
🛑 и обязательно убедитесь, что ваш пул соединений возвращает соединения с включённым автокоммитом по умолчанию.
На самом деле, просто не делайте этого, если только вы не настроили инструменты для анализа низкоуровневого взаимодействия между JDBC-драйвером и сервером базы данных, чтобы вы могли убедиться, что ваше понимание «без транзакции» соответствует действительности.
Если вы всё-таки хотите писать в базу данных с включённым автокомитом — это возможно, но вам придётся или вызвать
🍃 Комментарий от экспертов Spring АйО:
Автокомит, действительно, негативно сказывается на производительности приложения. Помимо этого, с его помощью можно получить неконсистентное состояние БД при обновлении (например, при попытке исполнить набор
С другой стороны, если Вы используете Spring, то ваш
🔗 Ссылка на userguide: https://docs.jboss.org/hibernate/orm/5.3/userguide/html_single/Hibernate_User_Guide.html#configurations-database-connection
На протяжении многих лет мы сталкивались с удивительно большим количеством людей, которые настаивают на том, что им нужно обращаться к базе данных «без транзакции» — под этим мы понимаем выполнение запросов с autoСommit = true в рамках JDBC. Мы уверены, что это почти всегда ужасная идея, и что большинство людей, поступающих так, просто заблуждаются относительно аспектов изоляции транзакций или не понимают, что использование автокоммита означает для управления пулом JDBC-соединений.
Тем не менее Hibernate это, пусть неохотно, но позволяет.
Если вы всё же решитесь на этот странный шаг:
hibernate.connection.autocommit=true
На самом деле, просто не делайте этого, если только вы не настроили инструменты для анализа низкоуровневого взаимодействия между JDBC-драйвером и сервером базы данных, чтобы вы могли убедиться, что ваше понимание «без транзакции» соответствует действительности.
Если вы всё-таки хотите писать в базу данных с включённым автокомитом — это возможно, но вам придётся или вызвать
flush()
на Session-е явным образом, или, ещё лучше, использовать StatelessSession
. И, пожалуйста, не жалуйтесь потом, что ваша база данных оказывается в неконсистентном состоянии.Автокомит, действительно, негативно сказывается на производительности приложения. Помимо этого, с его помощью можно получить неконсистентное состояние БД при обновлении (например, при попытке исполнить набор
UPDATE
операций).С другой стороны, если Вы используете Spring, то ваш
@Autowired EntityManager entityManager
или @PersistenceContext EntityManager entityManager
, по-умолчанию, имеет lifecycle привязанный к жизни текущей транзакции Spring-а. То есть, Spring, по-умолчанию, требует от Вас декларировать транзакции в том или ином виде самостоятельно, чтобы Вы могли использовать EntityManager
, что, в целом, довольно правильно.Please open Telegram to view this post
VIEW IN TELEGRAM
👍13❤6🔥4👌1
🎉 Нас уже больше 1000 на YouTube!
Друзья, совсем недавно на YouTube канал нашего сообщества подписался тысячный подписчик! Спасибо каждому из Вас!
Мы делаем контент, который хотели бы смотреть сами: подкасты, конференции, интервью, стримы.
😉 Кто ещё не с нами — подписывайтесь!
Друзья, совсем недавно на YouTube канал нашего сообщества подписался тысячный подписчик! Спасибо каждому из Вас!
Мы делаем контент, который хотели бы смотреть сами: подкасты, конференции, интервью, стримы.
Please open Telegram to view this post
VIEW IN TELEGRAM
12🔥42❤10👍7