Spring АйО
8.44K subscribers
304 photos
215 videos
403 links
Русскоязычное сообщество Spring-разработчиков.

Habr: bit.ly/433IK46
YouTube: bit.ly/4h3Ci0x
VK: bit.ly/4hF0OG8
Rutube: bit.ly/4b4UeX6
Яндекс Музыка: bit.ly/3EIizWy

Канал для общения: @spring_aio_chat
Download Telegram
Media is too big
VIEW IN TELEGRAM
🍃 Кошки умнее СhatGPT / Никто не знает, что такое ООП / Агрессивные бобры | Spring АйО Подкаст №5

😉 СМОТРЕТЬ НА YOUTUBE
😄 СМОТРЕТЬ В VK ВИДЕО
🥰 СМОТРЕТЬ НА RUTUBE
🗯 СЛУШАТЬ НА ЯНДЕКС.МУЗЫКЕ

💬 Аудио версию подкаста можно найти в комментариях
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥14😁10👍5
😲 Valhalla — эпичный рефакторинг Java. Часть 1: История проекта, сложности реализации и цели

Команда Spring АйО перевела и адаптировала доклад Брайана Гоетца “Valhalla — эпичный рефакторинг Java”, который будет опубликован несколькими частями. В первой части серии будет рассказано об истории и причинах появления проекта Valhalla и, вкратце, об основных целях, которые ставила перед собой команда.

📚 Читать на Хабр: https://habr.com/ru/companies/spring_aio/articles/878950/
Please open Telegram to view this post
VIEW IN TELEGRAM
👍28🔥107
🛡 Spring Security: разберём по полочкам токены, фильтры и авторизацию (с диаграммами!)

Команда Spring АйО перевела статью, в которой подробно рассматривается процесс регистрации и аутентификации пользователей с использованием Spring Security.

Однако несмотря на то, что Josh Long считает эту статью "обязательной к прочтению":

A very interesting article on the flow diagrams for Spring Security—a must-bookmark!


У экспертов сообщества к ней возникли некоторые вопросы:
- Зачем для регистрации и логина использовать дополнительный матчер и исключения путей в фильтре, если можно просто применять permitAll()?
- Почему после успешной регистрации сразу не выдаётся токен для аутентификации?
– Что с токенами, а именно с их хранением, шифрованием, временем жизни и почему JWT оторван от OAuth 2.0?

Будем рады обсуждению в комментариях!

📚 Читать на Хабр: https://habr.com/ru/companies/spring_aio/articles/879704/
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥31👍108
🛸 Flyway Baseline Миграция без лишних слов: Что это и зачем нужно

В новом переводе от команды Spring АйО вы узнаете, как работает baseline миграция во Flyway, в чем ее отличие от обычного скрипта миграции и каковы преимущества ее использования.

📚 Читать на Хабр: https://habr.com/ru/companies/spring_aio/articles/880486/
Please open Telegram to view this post
VIEW IN TELEGRAM
👍16🔥53🤔2
👍12🔥52
Media is too big
VIEW IN TELEGRAM
🍃 Идеальный Spring Security / Правильные миграции / Мы идём в Valhalla | Spring АйО Подкаст №6

😉 СМОТРЕТЬ НА YOUTUBE
😄 СМОТРЕТЬ В VK ВИДЕО
🥰 СМОТРЕТЬ НА RUTUBE
🗯 СЛУШАТЬ НА ЯНДЕКС.МУЗЫКЕ

💬 Аудио версию подкаста можно найти в комментариях
Please open Telegram to view this post
VIEW IN TELEGRAM
👍14🔥6😁4👎1
🤿 Глубокое погружение в процедуру запуска JVM

Новый перевод от команды Spring АйО расскажет вам, что происходит при запуске самого простого приложения на Java, какие шаги выполняет JVM, сколько классов ей необходимо загрузить, чтобы просто написать “Hello, World!” и как все это выглядит на уровне byte code.

📚 Читать на Хабр: https://habr.com/ru/companies/spring_aio/articles/881128/
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥25👍1311
Junie – новый AI-агент от JetBrains. Junior разработчики больше не нужны?

В новом переводе от команды Spring АйО мы расскажем вам о новом продукте от компании JetBrains, который называется Junie. Новый продукт работает по принципу искусственного интеллекта и способен самостоятельно выполняет задачи по написанию кода.

📚 Читать на Хабр: https://habr.com/ru/companies/spring_aio/articles/881288/
Please open Telegram to view this post
VIEW IN TELEGRAM
13👍7🔥7👎3🤯2🤔1
🙈 Секреты JVM: что происходит с ошибками под капотом

Новый перевод от команды Spring АйО расскажет вам (с примерами кода), как JVM обрабатывает исключения на низком уровне, что такое таблица исключений и какие сценарии используются для вариантов try-catch и try-finally.

📚 Читать на Хабр: https://habr.com/ru/companies/spring_aio/articles/882196/
Please open Telegram to view this post
VIEW IN TELEGRAM
👍14🔥83😁1
😡 Valhalla — эпичный рефакторинг Java. Часть 2: проблемы проекта и их решения

Команда Spring АйО перевела и адаптировала доклад Брайана Гоетца “Valhalla — эпичный рефакторинг Java”, и сегодня мы публикуем вторую часть из трех.

В первой части серии было рассказано об истории и причинах появления проекта Valhalla. Во второй части подробно разбирается вопрос о том, с какими фундаментальными сложностями столкнулась команда на пути к решению поставленных задач.

📚 Читать на Хабр: https://habr.com/ru/companies/spring_aio/articles/882690/
Please open Telegram to view this post
VIEW IN TELEGRAM
👍215🔥4
Media is too big
VIEW IN TELEGRAM
🍃 Джунов больше не будет / JVM бывает глубокой / Нас всех отсертифицируют | Spring АйО Подкаст №7

😉 СМОТРЕТЬ НА YOUTUBE
😄 СМОТРЕТЬ В VK ВИДЕО
🥰 СМОТРЕТЬ НА RUTUBE
🗯 СЛУШАТЬ НА ЯНДЕКС.МУЗЫКЕ

💬 Аудио версию подкаста можно найти в комментариях
Please open Telegram to view this post
VIEW IN TELEGRAM
👍64🔥4😁2🤯2
⚡️⚡️⚡️ Spring Now 2025 – Главная конференция про Spring на русском языке

Уже через 2 недели состоится бесплатная онлайн-конференция Spring Now 2025!

В ней примут участие не только эксперты сообщества Spring АйО, но и приглашенные лидеры индустрии.

Более подробно про программу мероприятия и спикеров конференции мы расскажем в течение ближайших двух недель 💚

🗓 6 марта 17:00 – 21:00 МСК
📍 Онлайн. Бесплатно

🔗 ЗАРЕГИСТРИРОВАТЬСЯ

#spring_now_2025
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥47🤩1091
🤖 Эволюция экосистемы Java под интеграцию ИИ

Новый перевод от команды Spring АйО расскажет вам, как новые библиотеки и фреймворки расширяют экосистему Java, делая возможной интеграцию ИИ-решений в приложения, написанные на Java.

Статья также включает в себя туториал, рассказывающий по шагам, как написать простой помощник по отладке приложений на Java, используя возможности больших языковых моделей.

📚 Читать на Хабр: https://habr.com/ru/companies/spring_aio/articles/883964/
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥15👍64
⚡️Spring Ретро-Ностальгический. Новости из прошлого

На Spring Now 2025 Павел Кислов расскажет про ключевые фичи 24-го года и постарается ответить на вопрос: "А что от них нам – простым разработчикам?".

Java с ее постоянными новинками шире, чем сводка новостной ленты одного человека. Поговорим не о широком поле новинок джавы, сфокусируемся только на спринге. Синхронизируемся с реальностью: посмотрим на ключевые события 24-го года и подумаем, какие изменения это возможно предвещает. Большие новинки, важные вехи и их последствия.


🗓 6 марта 17:00 – 21:00 МСК
📍 Онлайн. Бесплатно

🔗 ЗАРЕГИСТРИРОВАТЬСЯ

#spring_now_2025
Please open Telegram to view this post
VIEW IN TELEGRAM
👍14🔥9🤩4
⚠️ Spring Data: Page & Slice. Когда что использовать?

Отвечает эксперт сообщества 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. Реализовать это можно по-разному.

❗️ Подробнее, как ещё можно оптимизировать постраничную навигацию, вы можете узнать в докладе экспертов сообщества (Ильи и Фёдора Сазоновых) на Jpoint 2023.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍62🔥20🤯71
⚡️ Прекрасный Spring Boot: паттерны разработки

На Spring Now 2025 Рустам Курамшин расскажет про современные паттерны разработки на Spring Boot.

Рассмотрим такие подходы, как микросервисная архитектура, шаблоны проектирования (design patterns), а также практики разработки API.


🗓 6 марта 17:00 – 21:00 МСК
📍 Онлайн. Бесплатно

🔗 ЗАРЕГИСТРИРОВАТЬСЯ

#spring_now_2025
Please open Telegram to view this post
VIEW IN TELEGRAM
👍34🔥20🤩6👎2
3️⃣ Valhalla — эпичный рефакторинг Java. Часть 3: наши первые результаты

Команда Spring АйО перевела и адаптировала доклад Брайана Гоетца “Valhalla — эпичный рефакторинг Java”, и сегодня мы публикуем третью, финальную, часть.

🟡 В первой части серии было рассказано об истории и причинах появления проекта Valhalla.
🔵 Во второй части подробно разбирался вопрос о том, с какими фундаментальными сложностями команда столкнулась на пути к решению поставленных задач.
🟣 Третья и заключительная часть повествует о первых успехах команды и о том, как скоро мы сможем увидеть первые итоги проекта в действии.

📚 Читать на Хабр: https://habr.com/ru/companies/spring_aio/articles/884586/
Please open Telegram to view this post
VIEW IN TELEGRAM
👍17🔥95