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
🗓 Еженедельный дайджест №27

Для тех, кто был слишком занят на неделе или просто пропустил некоторые посты, публикуем дайджест!

🍃 Spring АйО

AI-ассистент с помощью Spring AI
Как жить без IntelliJ IDEA? Часть 5. Заключение
JEP 485: Stream Gatherers
Итоги 2024 года

⭐️ Партнёры

Исследование от Amplicode: Экосистема Spring в 2023/2024 годах
Joker опубликовал выступления блока «Language Features» с Joker 2024

😌 @spring_aio
Please open Telegram to view this post
VIEW IN TELEGRAM
👍11🔥74
Media is too big
VIEW IN TELEGRAM
🎄 Дорогие участники сообщества Spring АйО!

Совсем скоро наступит 2025 год! По этому поводу эксперты сообщества подготовили для Вас небольшое видео-поздравление. Желаем приятного просмотра 🥳

С Новым годом, друзья! 🎄
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥75👍21133🤩1
🔥 У WireMock теперь есть официальная интеграция со Spring Boot!

В конце прошлого года у WireMock появилась официальная интеграция со Spring Boot. WireMock — один из самых популярных инструментов для имитации HTTP API в разработке и тестировании. Но раньше его использование в Spring Boot проектах требовало дополнительных усилий: разработчики вручную настраивали мок-серверы, писали повторяющийся код и работали с фиксированными портами. Это особенно усложняло работу в динамических или контейнеризованных средах.

Ключевые преимущества, которые получат разработчики благодаря интеграции со Spring Boot:

1. Поддержка WireMock с Jetty 12. Появилась поддержка сборки WireMock на базе Jetty 12. Теперь используется компактный JAR-файл jetty12 вместо более крупного standalone JAR. Это особенно полезно для команд, которые стремятся минимизировать размер загружаемых зависимостей.

2. Аннотации для настройки WireMock в тестах. Теперь можно создавать и настраивать экземпляры WireMock с помощью аннотаций. Например, можно определить экземпляр WireMock в тестовом классе следующим образом:


@SpringBootTest(classes = MyAppConfiguration.class)
@EnableWireMock
class MyTest {

@InjectWireMock
private WireMockServer wm;

// тесты
}


Всего несколько строк кода — и интеграция автоматически создаст мок-сервер, настроит его и возьмёт на себя управление его жизненным циклом.

3. Поддержка Extension Factories через аннотации конфигурации. Благодаря этому нововведению процесс подключения расширений WireMock, таких как gRPC или любых других пользовательских плагинов, значительно упростился. Теперь для загрузки gRPC-расширения WireMock достаточно указать всего один параметр в конфигурации:


@EnableWireMock({
@ConfigureWireMock(
extensionFactories = {Jetty12GrpcExtensionFactory.class}
)
})


4. Динамическое выделение портов и интеграция с пропертями. Одной из частых проблем при тестировании с мок-серверами является конфликт портов. WireMock решает эту задачу за счёт динамического назначения портов, что уменьшает вероятность конфликтов. Однако такой подход требует передачи номера порта в базовый URL HTTP-клиента внутри Spring Boot приложения, что может быть не таким уж простым процессом.

Интеграция WireMock с Spring Boot решает этот вопрос: порт WireMock (и другие полезные параметры среды выполнения) автоматически добавляются в контекст приложения в виде свойств, за счёт чего легко получить назначенный порт и использовать его для настройки API-зависимостей тестируемого приложения. Например:


api.client.base-url=http://localhost:${wiremock.server.port}


Начало работы с WireMock в Spring Boot:

Чтобы начать использовать официальную интеграцию WireMock с Spring Boot, добавьте в ваш pom.xml или build.gradle следующую зависимость и начните использовать аннотации и параметры конфигурации для создания экземпляров WireMock в тестах:


@SpringBootTest(
webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT,
classes = MySpringbootApplication.class
)
@EnableWireMock({
@ConfigureWireMock(
name = "greeting-service"
)
})
class MyApplicationTests {
// Реализация тестов
}


🔗 Для примеров и подробной информации о работе с WireMock в Spring Boot оставляем ссылку на официальную документацию.
🔥60👍2514
📊 Jakarta Data и Persistence: Инструменты, которые меняют подход к работе с данными

Команда Spring АйО перевела и адаптировала доклад "Jakarta Data and Jakarta Persistence by Gavin King" Гевина Кинга с последнего Devoxx.

В своем выступлении Гевин Кинг рассказал о преимуществах и нововведениях Jakarta Data и Jakarta Persistence.

📚 Читать на Хабре: https://habr.com/ru/companies/spring_aio/articles/872830/
Please open Telegram to view this post
VIEW IN TELEGRAM
👍259🔥7
🎄 Spring АйО - Новогодний подкаст

Лучше поздно, чем никогда... Хотя, сегодня - старый Новый год! 🎅

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

😉 СМОТРЕТЬ НА YOUTUBE
😄 СМОТРЕТЬ В VK ВИДЕО
🥰 СМОТРЕТЬ НА RUTUBE

💬 Аудио версию подкаста можно найти в комментариях
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥18👍1081
⚙️ Постквантовая криптография в Java

Команда Spring АйО перевела статью про новые возможности грядущей версии Java 24, в которой появятся два JEP — 496 и 497, посвященные алгоритмам, устойчивым к квантовым атакам.

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

📚 Читать на Хабре: https://habr.com/ru/companies/spring_aio/articles/873886/
🔥2310👍74🤔2
Первая EAP-версия IntelliJ IDEA 2025.1 уже доступна!

Команда Spring АйО перевела статью от JetBrains про запуск EAP для IntelliJ IDEA 2025.1.

Среди новинок — поддержка Java 24, упрощённая работа со Spring Beans, улучшения отладчика и поддержка Gradle Daemon toolchains.

📚 Читать на Хабр: https://habr.com/ru/companies/spring_aio/articles/874146/
👍17🔥10👎76🤩2
🌟 Event-Driven микросервисы: масштабируемая архитектура с Kafka и Spring Boot

Event-driven архитектура - один из видов архитектур, который подходит для обеспечения независимости, масштабируемости и устойчивости микросервисов.

В новом переводе от команды Spring АйО вы в легкодоступной форме узнаете, как построить такую архитектуру, используя Apache Kafka и Spring Boot, а также ознакомитесь с пошаговой настройкой продюсеров, консьюмеров, решеним задач надежности и управлением схемами.

📚 Читать на Хабр: https://habr.com/ru/companies/spring_aio/articles/874488/
🔥19👍83👎1
🍃 Новинки из мира тулов, постквантовая криптография и Jakarta Data | Spring АйО Подкаст №3

В третьем выпуске подкаста Spring АйО в студии собрались 3 эксперта сообщества, чтобы обсудить новинки из мира тулов, постквантовую криптографию, Jakarta Data, IntelliJ IDEA 2025.1 EAP, способы деплоя Java-приложения в продакшн, а также Event-Driven микросервисы.

😉 СМОТРЕТЬ НА YOUTUBE
😄 СМОТРЕТЬ В VK ВИДЕО
🥰 СМОТРЕТЬ НА RUTUBE

💬 Аудио версию подкаста можно найти в комментариях
Please open Telegram to view this post
VIEW IN TELEGRAM
👍16🔥85
⚠️ Spring Framework переходит на DCO: что это означает для сообщества?

Отвечает эксперт сообщества Spring АйО – Михаил Поливаха.

–––

Друзья, с нового года Spring Framework перешел с политики контрибьюшенов CLA (Contributor License Agreement) на DCO (Developer Certificate of Origin).

Что это значит для Вас всех?

Несмотря на то, что напрямую эта новость касается тех людей, кто хотел когда-либо контрибьютить в Spring Framework, либо уже этим занимается - знать, что такое DCO, должны все. Это коснется Всех. Огромное количество Software проектов использют модель DCO (например, ядро ОС Linux).

Меня, как контрибьютора в Spring Data, это коснулось напрямую.

Что такое CLA (Contributor License Agreement)?

Видите ли, когда вы пишите любой код (не в рамках обязательств, например, по трудовому договору), права на этот код принадлежат только Вам. Вы написали какой-то код и решили законтрибьютить в Spring — молодцы, хвалю Вас!

Только вот есть проблема - код этот принадлежит Вам, и если его вносить в кодовую базу Spring Framework, то Вы, потенциально, в суде, можете претендовать на то, что Spring Framework по праву Ваша разработка - вот так! И подобные кейсы в Open Source были, читайте ниже.

CLA это такой документ, который Вы раньше подписали бы, говорящий о том, что Вы передаете свой патч согласно Open Source лицензии проекта, например:

1. MIT
2. Apache License
3. GPL и другие


Иными словами, с помощью CLA Spring Framework и другие проекты ранее прикрывали свое мягкое место. И это работало.

Но есть один нюанс...

Что такое DCO (Developer Certificate of Origin)?

Но тут есть проблема. Вы, конечно, готовы передать свой код в Spring Framework. Но представьте себе, что Вы создали свой коммит, при этом копировали решение из какого-то приватного API, который является проприетарным, т.е. который является чьей-то интеллектуальной собственностью, и который не разрешается публиковать в public.

И получается дилемма: вы как бы чью-то собственность без разрешения владельца (например, Вашего работодателя), выложили в публичный доступ. Если любой проект примет такое изменение (при этом это изменение не подписано с DCO), то Ваш работодатель имеет право претендовать на интеллектульную собственность этого Open Source проекта.

Из-за такой дилеммы когда-то был огромный судебный процесс по Linux, и с тех пор этой ситуации жутко боятся.

Таким образом, DCO представляет собой маленький атрибут в сообщении каждого коммита, например вот такой (в моем случае):

Author: mipo256 <email@gmail.com>
Date: EEE MMM dd HH:mm:ss yyyy Z

Added Sequence generation support

Signed-off-by: mipo256 <mail@gmail.com>


Подписывая каждый комит с DCO - вы говорите, что Вы не просто соглашаетесь с лицензией проекта, вы также:
- утверждаете, что тот, кто написан после тега Signed-off-by имеет полное право сабмитить этот патч.
- утверждаете, что готовы передать код в рамках лицензии проекта (о чем писали ранее)

По итогу Вы подтверждаете, что имеете право его вносить. Если потом возникнут вопросы, то обращаться будут уже не к проекту, а к Вам.

Вывод

Spring Framework и другие проекты в Open Source переходят на DCO. Если Вы все делаете и делали честно — вы просто добавляете фрагмент с подписью в сообщение каждого коммита и все.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4610🔥7🤯52
🗓 Маппинг даты и времени в Hibernate и JPA

Сегодня любой Java разработчик сходу сможет правильно ответить на вопрос "Как смапить дату и время из колонки таблицы БД на поле в Java классе?". Или нет?

На самом деле, нюансов по ходу решения этой задачи может возникнуть немало.

В новом переводе от команды Spring АйО рассказывается про подробности работы с современным API java.time, правильный маппинг данных с учётом часовых поясов, устаревших типов java.util.Date, Calendar и многое другое.

📚 Читать на Хабр: https://habr.com/ru/companies/spring_aio/articles/875762/
Please open Telegram to view this post
VIEW IN TELEGRAM
👍377🔥6
👩‍💻 29 лет с момента выхода JDK 1.0

Ровно 29 лет назад, 23 января 1996 года, вышла первая мажорная версия JDK и с тех пор Java прочно заняла место в наших сердцах.

Его кредо
«Write once, run anywhere»

стало символом универсальности и удобства.

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

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

Давайте продолжим писать историю этого языка вместе!
С днем рождения, Java! 🤍

💬 А какие у вас самые яркие воспоминания, связанные с Java? Поделитесь в комментариях!
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥6333👍9🤔2
IntelliJ IDEA 2025.1 EAP 2

Команда Spring АйО перевела статью от JetBrains про релиз второй версии EAP для IntelliJ IDEA 2025.1.

Среди нововведений — поддержка Containerfile и обновления для Dockerfile.

📚 Читать на Хабр: https://habr.com/ru/companies/spring_aio/articles/876112/
👍11🔥53
🍃 Spring Framework 7.0.0-M1 и Spring Boot 3.5.0-M1

На официальном блоге spring.io появилась информация о первых майлстоунах для следующих версий Spring Framework и Spring Boot:

🛑 Spring Framework 7.0.0-M1
🛑 Spring Boot 3.5.0-M1

Что важно знать:

🔵 Релиз Spring Framework 7.0 планируется на ноябрь 2025 года
🟠 Список поддерживаемых технологий для совместимости остался без изменений
🔵 Spring Framework 7.0.0-M1 включил в себя первые наработки по Null Safety: аннотации org.springframework.lang заменяются на стандарт JSpecify
🟠 Spring Boot 3.5.0-M1 включил в себя 100 улучшений, среди которых обновления документации, исправления ошибок и обновления зависимостей

💬 А вы уже готовы обновляться?)
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥2284🤔3
🔍 Демистификация размеров объектов в Java: компактные заголовки, сжатые указатели и многое другое

Понимание размера объектов в Java — важный шаг для оптимизации памяти в высоконагруженных системах.

В новом переводе от команды Spring АйО вы узнаете про использование HotSpot JVM таких механизмов, как сжатые указатели (Compressed Oops) и компактные заголовки объектов (Compact Object Headers), необходимых для минимизации объема занимаемой памяти.

📚 Читать на Хабр: https://habr.com/ru/companies/spring_aio/articles/876352/
👍175🔥5
Media is too big
VIEW IN TELEGRAM
🍃 Никто не коммитит в Spring, Java-милфа, таракашки не эволюционируют | Spring АйО Подкаст №4

😉 СМОТРЕТЬ НА YOUTUBE
😄 СМОТРЕТЬ В VK ВИДЕО
🥰 СМОТРЕТЬ НА RUTUBE

💬 Аудио версию подкаста можно найти в комментариях
Please open Telegram to view this post
VIEW IN TELEGRAM
😁23👍12🔥10🤔21
📉 Акции компании Broadcom вчера упали на 17%

Основной причиной этого стала активность в секторе искусственного интеллекта, в частности запуск китайским стартапом DeepSeek крупной языковой модели DeepSeek-R1. Эта модель использует менее продвинутые, но более экономичные полупроводниковые чипы, что быстро принесло ей популярность.

Релиз вышеупомянутой языковой модели негативно повлиял на стоимость акций таких крупных американских компаний как Nvidia, Microsoft, Oracle, Broadcom и многих других.

Для Spring-сообщества эта новость может быть особенно интересной, так как Broadcom владеет VMware, которая в свою очередь поддерживает экосистему Spring.

#spring_news
Please open Telegram to view this post
VIEW IN TELEGRAM
🤯16👍145🤔4🔥3😁1