Для тех, кто был слишком занят на неделе или просто пропустил некоторые посты, публикуем дайджест!
– Так бины ты еще не создавал, функциональный захват 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
🧪 Как написать микробенчмарк?
Команда Spring АйО перевела статью, в которой приведено несколько правил, которые следует учитывать при написании микробенчмарков для HotSpot JVM.
📚 Читать на Хабре: https://habr.com/ru/companies/spring_aio/articles/920146/
Подписывайтесь:
😌 @spring_aio
Команда Spring АйО перевела статью, в которой приведено несколько правил, которые следует учитывать при написании микробенчмарков для HotSpot JVM.
📚 Читать на Хабре: https://habr.com/ru/companies/spring_aio/articles/920146/
Подписывайтесь:
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10❤6🔥5👎1
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
1😁51🔥10❤4👎3🤔3🤯3
Для тех, кто был слишком занят на неделе или просто пропустил некоторые посты, публикуем дайджест!
– Spring Data тонет в транзакциях, Hibernate виноват, ORM в панике | Spring АйО Подкаст №23
– Spring Now 2025 завершён — все записи уже выложены!
– Использование сессии без транзакции — не повторяйте это дома!
– Нас уже больше 1000 на YouTube!
– Как написать микробенчмарк?
– Amplicode: Действие по преобразованию Spring Data JPA derived метода в @Query
– JPoint: Дмитрий Фролов — Легаси. Оптимизации. Обфускация. Героическая борьба с Minecraft
Please open Telegram to view this post
VIEW IN TELEGRAM
❤8👍4🔥3
Media is too big
VIEW IN TELEGRAM
💬 Аудио версию подкаста можно найти в комментариях
Подписывайтесь:
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥14❤7👍7
📢 Вышел Hibernate Search 8.0.0.CR1 — кандидат в релизы следующей мажорной версии!
Hibernate Search — это библиотека, которая связывает Hibernate ORM с Apache Lucene или Elasticsearch и автоматически индексирует сущности. Это даёт расширенные возможности поиска: полнотекстовый, геопространственный, агрегации и многое другое.
Что нового в 8.0.0.CR1:
🛑 Улучшенная интеграция с Hibernate Models
🛑 Изменения в Search DSL API для упрощения миграции
🛑 Мелкие доработки и обновления зависимостей
🔗 Подробности в release notes.
Hibernate Search — это библиотека, которая связывает Hibernate ORM с Apache Lucene или Elasticsearch и автоматически индексирует сущности. Это даёт расширенные возможности поиска: полнотекстовый, геопространственный, агрегации и многое другое.
Что нового в 8.0.0.CR1:
Please open Telegram to view this post
VIEW IN TELEGRAM
👍15🔥8❤2
Ваше отношение к Hibernate Search
Anonymous Poll
3%
Я использую Hibernate Search в работе и все нравится
1%
Я использую Hibernate Search в работе и это отвратительно (напишу, что болит, в комментарии)
53%
Я не использовал Hibernate Search, но хочу попробовать
43%
Я не знаком с Hibernate Search, и нет желания знакомиться
👍12❤9🔥7😁2
🚀 Spring Data JPA и Hibernate: ориентируемся на производительность. Часть 2
Команда Spring АйО перевела и адаптировала доклад Мацея Валковяка “Performance oriented Spring Data JPA & Hibernate”, в котором на наглядных примерах рассказывается, как существенно нарастить производительность приложения, оптимизировав его взаимодействие с БД.
Доклад будет опубликован тремя частями. В первой части было рассказано об оптимизации управления подключениями к базе данных.
Во второй части мы посмотрим на то, как оптимизировать код и настройки Spring Data и Hibernate, чтобы минимизировать количество отправляемых в базу данных SQL запросов.
📚 Читать на Хабре: https://habr.com/ru/companies/spring_aio/articles/922034/
Подписывайтесь:
😌 @spring_aio
Команда Spring АйО перевела и адаптировала доклад Мацея Валковяка “Performance oriented Spring Data JPA & Hibernate”, в котором на наглядных примерах рассказывается, как существенно нарастить производительность приложения, оптимизировав его взаимодействие с БД.
Доклад будет опубликован тремя частями. В первой части было рассказано об оптимизации управления подключениями к базе данных.
Во второй части мы посмотрим на то, как оптимизировать код и настройки Spring Data и Hibernate, чтобы минимизировать количество отправляемых в базу данных SQL запросов.
📚 Читать на Хабре: https://habr.com/ru/companies/spring_aio/articles/922034/
Подписывайтесь:
Please open Telegram to view this post
VIEW IN TELEGRAM
👍21🔥11❤5
🔧 Анатомия неудачного микробенчмарка
В новом переводе от команды Spring АйО подробно разбираются концептуальные, методологические и технические ошибки, на которые легко наткнуться при попытке протестировать такие механизмы, как
Автор объясняет, почему микробенчмарки часто измеряют не то, что вы думаете, и почему для получения осмысленных результатов лучше использовать макротесты или полагаться на экспертов.
📚 Читать на Хабре: https://habr.com/ru/companies/spring_aio/articles/922848/
Подписывайтесь:
😌 @spring_aio
В новом переводе от команды Spring АйО подробно разбираются концептуальные, методологические и технические ошибки, на которые легко наткнуться при попытке протестировать такие механизмы, как
synchronized
и ReentrantLock
. Автор объясняет, почему микробенчмарки часто измеряют не то, что вы думаете, и почему для получения осмысленных результатов лучше использовать макротесты или полагаться на экспертов.
📚 Читать на Хабре: https://habr.com/ru/companies/spring_aio/articles/922848/
Подписывайтесь:
Please open Telegram to view this post
VIEW IN TELEGRAM
👍17🔥10❤7
Media is too big
VIEW IN TELEGRAM
💬 Аудио версию подкаста можно найти в комментариях
Подписывайтесь:
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥17👍9❤8