Команда Spring АйО перевела и адаптировала доклад Брайана Гоетца “Valhalla — эпичный рефакторинг Java”, и сегодня мы публикуем вторую часть из трех.
В первой части серии было рассказано об истории и причинах появления проекта Valhalla. Во второй части подробно разбирается вопрос о том, с какими фундаментальными сложностями столкнулась команда на пути к решению поставленных задач.
📚 Читать на Хабр: https://habr.com/ru/companies/spring_aio/articles/882690/
Please open Telegram to view this post
VIEW IN TELEGRAM
👍21❤5🔥4
Для тех, кто был слишком занят на неделе или просто пропустил некоторые посты, публикуем дайджест!
– Идеальный Spring Security / Правильные миграции / Мы идём в Valhalla | Spring АйО Подкаст №6
– Глубокое погружение в процедуру запуска JVM
– Junie – новый AI-агент от JetBrains. Junior разработчики больше не нужны?
– Секреты JVM: что происходит с ошибками под капотом
– Valhalla — эпичный рефакторинг Java. Часть 2: проблемы проекта и их решения
– JPoint: Александр Шустанов. IDE снаружи и внутри: от разбора механизмов к сборке решений
– Axiom JDK: Через тернии к рок-звездам: рассказываем, как прошел Java Rock Stars Meetup
– Joker 2024: JVM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍19❤6🔥4
Media is too big
VIEW IN TELEGRAM
💬 Аудио версию подкаста можно найти в комментариях
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6❤4🔥4😁2🤯2
⚡️⚡️⚡️ Spring Now 2025 – Главная конференция про Spring на русском языке
Уже через 2 недели состоится бесплатная онлайн-конференция Spring Now 2025!
В ней примут участие не только эксперты сообщества Spring АйО, но и приглашенные лидеры индустрии.
Более подробно про программу мероприятия и спикеров конференции мы расскажем в течение ближайших двух недель💚
🗓 6 марта 17:00 – 21:00 МСК
📍 Онлайн. Бесплатно
🔗 ЗАРЕГИСТРИРОВАТЬСЯ
#spring_now_2025
Уже через 2 недели состоится бесплатная онлайн-конференция Spring Now 2025!
В ней примут участие не только эксперты сообщества Spring АйО, но и приглашенные лидеры индустрии.
Более подробно про программу мероприятия и спикеров конференции мы расскажем в течение ближайших двух недель
📍 Онлайн. Бесплатно
#spring_now_2025
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥47🤩10⚡9❤1
Новый перевод от команды Spring АйО расскажет вам, как новые библиотеки и фреймворки расширяют экосистему Java, делая возможной интеграцию ИИ-решений в приложения, написанные на Java.
Статья также включает в себя туториал, рассказывающий по шагам, как написать простой помощник по отладке приложений на Java, используя возможности больших языковых моделей.
📚 Читать на Хабр: https://habr.com/ru/companies/spring_aio/articles/883964/
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥15👍6⚡4
⚡️Spring Ретро-Ностальгический. Новости из прошлого
На Spring Now 2025 Павел Кислов расскажет про ключевые фичи 24-го года и постарается ответить на вопрос: "А что от них нам – простым разработчикам?".
🗓 6 марта 17:00 – 21:00 МСК
📍 Онлайн. Бесплатно
🔗 ЗАРЕГИСТРИРОВАТЬСЯ
#spring_now_2025
На Spring Now 2025 Павел Кислов расскажет про ключевые фичи 24-го года и постарается ответить на вопрос: "А что от них нам – простым разработчикам?".
Java с ее постоянными новинками шире, чем сводка новостной ленты одного человека. Поговорим не о широком поле новинок джавы, сфокусируемся только на спринге. Синхронизируемся с реальностью: посмотрим на ключевые события 24-го года и подумаем, какие изменения это возможно предвещает. Большие новинки, важные вехи и их последствия.
📍 Онлайн. Бесплатно
#spring_now_2025
Please open Telegram to view this post
VIEW IN TELEGRAM
👍14🔥9🤩4
Отвечает эксперт сообщества Spring АйО – Михаил Поливаха.
–––
Есть один довольно маленький фикс, который Вы можете сделать в Spring Data, чтобы улучшить перформанс Ваших приложений, иногда заметно.
Не все знают, но пагинация бывает разная. Часто она нам нужна для того, чтобы не грузить все данные в память процесса. Ситуация схожая, если данные нужны front-end'у, и мы не хотим гонять огромные массивы данных по сети, front-end же в свою очередь будет рендерить их довольно долго, да и на практике так никто не делает. Чтобы адресовать подобные проблемы, мы используем пагинацию.
Возьмем Spring Data JPA (на самом деле неважно, какой именно модуль Spring Data вы тут возьмете, концепция везде едина). Предположим, что у нас есть сущность:
@Entity
public class SimpleEntity {
@Id
@Column(name = "id", nullable = false)
private Long id;
private String name;
private long createdAt;
// getters, setters, toString
}
и 2 метода в репозитории:
@Query("SELECT p FROM SimpleEntity p WHERE p.name LIKE :namePattern")
Slice<SimpleEntity> findCustomSlice(Pageable pageable, @Param("namePattern") String namePattern);
@Query("SELECT p FROM SimpleEntity p WHERE p.name LIKE :namePattern")
Page<SimpleEntity> findCustomPage(Pageable pageable, @Param("namePattern") String namePattern);
Они отличаются лишь типом возвращаемого значения. В первом случае -
Slice
, во втором - Page
. Если вызвать первый метод, возвращающий Slice
, то выполнится вот такой запрос (в общем случае):
select
se1_0.id,
se1_0.created_at,
se1_0.name
from
simple_entity se1_0
where
se1_0.name like ? escape ''
order by
se1_0.id
offset
? rows
fetch
first ? rows only
Но чаще всего люди используют
Page
. В этом случае Spring Data пошлёт запрос описанный выше и, вдобавок, ещё один запрос:
select
count(se1_0.id)
from
simple_entity se1_0
where
se1_0.name like ? escape ''
–
Slice
в Spring Data, как абстракция, представляет собой некоторую часть данных из общего датасета, некоторую страничку. Но эта страничка не знает о том, сколько всего страниц существует. Она знает свой порядковый номер, но она не знает, сколько страниц ещё впереди.–
Page
расширяет понятие Slice
, добавляя при этом страничке понимание того, а сколько страниц впереди неё, и сколько всего страниц в выборке. Для того, чтобы это понять, и нужен второй count()
запрос.Вывод
Если Вам не нужно знать общее количество страниц в выборке, то используйте
Slice
- на каждый запрос за каждой страницей вы сэкономите один count
запрос. Если вам нужно знать общее количество страниц в выборке (оно, скорее всего, не меняется, пока пользователь листает страницы, хотя имейте это в виду), то вы можете один раз отправить на front-end результат выполнения запроса с
count()
и дальше использовать Slice
. Реализовать это можно по-разному.Please open Telegram to view this post
VIEW IN TELEGRAM
👍62🔥20🤯7❤1
⚡️ Прекрасный Spring Boot: паттерны разработки
На Spring Now 2025 Рустам Курамшин расскажет про современные паттерны разработки на Spring Boot.
🗓 6 марта 17:00 – 21:00 МСК
📍 Онлайн. Бесплатно
🔗 ЗАРЕГИСТРИРОВАТЬСЯ
#spring_now_2025
На Spring Now 2025 Рустам Курамшин расскажет про современные паттерны разработки на Spring Boot.
Рассмотрим такие подходы, как микросервисная архитектура, шаблоны проектирования (design patterns), а также практики разработки API.
📍 Онлайн. Бесплатно
#spring_now_2025
Please open Telegram to view this post
VIEW IN TELEGRAM
👍34🔥20🤩6👎2
Команда Spring АйО перевела и адаптировала доклад Брайана Гоетца “Valhalla — эпичный рефакторинг Java”, и сегодня мы публикуем третью, финальную, часть.
📚 Читать на Хабр: https://habr.com/ru/companies/spring_aio/articles/884586/
Please open Telegram to view this post
VIEW IN TELEGRAM
👍17🔥9❤5
⚡️ Spring Boot 2.x → 3.x: таков путь миграции
На Spring Now 2025 Артём Гордиевич расскажет про обновление проектов на Spring Boot до актуальной версии.
🗓 6 марта 17:00 – 21:00 МСК
📍 Онлайн. Бесплатно
🔗 ЗАРЕГИСТРИРОВАТЬСЯ
#spring_now_2025
На Spring Now 2025 Артём Гордиевич расскажет про обновление проектов на Spring Boot до актуальной версии.
Разберем ключевые изменения, потенциальные сложности и лучшие практики миграции со Spring Boot 2 на 3. Обсудим, как подготовиться к обновлению, минимизировать риски и сделать процесс перехода более плавным, безопасным и предсказуемым.
📍 Онлайн. Бесплатно
#spring_now_2025
Please open Telegram to view this post
VIEW IN TELEGRAM
👍17🔥7❤3🤩2
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
😁38👎7🔥7👍6🤔2🤯2
⚡️Spring AI. Как работать с языковыми моделями прямо из вашего приложения?
На Spring Now 2025 Михаил Поливаха расскажет про Spring AI и его интеграцию с российскими нейросетями.
🗓 6 марта 17:00 – 21:00 МСК
📍 Онлайн. Бесплатно
🔗 ЗАРЕГИСТРИРОВАТЬСЯ
#spring_now_2025
На Spring Now 2025 Михаил Поливаха расскажет про Spring AI и его интеграцию с российскими нейросетями.
В Spring пару лет назад появился модуль для работы с AI моделями. К сожалению, в нём отсутствуют встроенные клиенты для работы с российскими языковыми моделями, такими как YandexGPT, GigaChat и др. Но интегрировать их все-таки можно. Рассмотрим на докладе, как это сделать.
📍 Онлайн. Бесплатно
#spring_now_2025
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥19👍8❤5👎2
Для тех, кто был слишком занят на неделе или просто пропустил некоторые посты, публикуем дайджест!
– Джунов больше не будет / JVM бывает глубокой / Нас всех отсертифицируют | Spring АйО Подкаст №7
– Эволюция экосистемы Java под интеграцию ИИ
– Spring Data: Page & Slice. Когда что использовать?
– Valhalla — эпичный рефакторинг Java. Часть 3: наши первые результаты
⚡️Spring Now 2025
– Главная конференция про Spring на русском языке
– Прекрасный Spring Boot: паттерны разработки
– Spring Ретро-Ностальгический. Новости из прошлого
– Spring Boot 2.x → 3.x: таков путь миграции
– Spring AI. Как работать с языковыми моделями прямо из вашего приложения?
– Вышел Amplicode 2024.3.3-EAP!
– JPoint: Роман Артемьев. ART Memory Management
Please open Telegram to view this post
VIEW IN TELEGRAM
👍13⚡6❤5
⚡️Монополия Spring на доступ к данным: почему это не очень хорошо и что с этим делать
На Spring Now 2025 Вячеслав Чернышов расскажет про альтернативные решения одним из самых популярных модулей Spring Data JPA и Spring JDBC.
🗓 6 марта 17:00 – 21:00 МСК
📍 Онлайн. Бесплатно
🔗 ЗАРЕГИСТРИРОВАТЬСЯ
#spring_now_2025
На Spring Now 2025 Вячеслав Чернышов расскажет про альтернативные решения одним из самых популярных модулей Spring Data JPA и Spring JDBC.
Решения Spring Data лидируют в части доступа к данным, но так ли они хороши? При всех очевидных плюсах, и Spring Data JPA, и Spring JDBC имеют недостатки. А есть ли альтернативы? Конечно, есть!
Вы джавист? Вам повезло — есть хорошая альтернатива.
Котлинист? Ещё лучше — есть отличная альтернатива!
Разберём эти альтернативы и сравним их с решениями Spring!
📍 Онлайн. Бесплатно
#spring_now_2025
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12🔥7⚡5👎2❤1
Новый перевод от команды Spring АйО расскажет вам, что такое Model Context Protocol (MCP) и как его внедрение в экосистему Java упрощает жизнь разработчикам систем, в работе которых используется искусственный интеллект и LLM, а также передача большого количества данных между различными компонентами.
📚 Читать на Хабр: https://habr.com/ru/companies/spring_aio/articles/885544/
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥13👍7❤4