Для тех, кто был слишком занят на неделе или просто пропустил некоторые посты, публикуем дайджест!
– AI-ассистент с помощью Spring AI
– Как жить без IntelliJ IDEA? Часть 5. Заключение
– JEP 485: Stream Gatherers
– Итоги 2024 года
– Исследование от Amplicode: Экосистема Spring в 2023/2024 годах
– Joker опубликовал выступления блока «Language Features» с Joker 2024
Please open Telegram to view this post
VIEW IN TELEGRAM
👍11🔥7❤4
Media is too big
VIEW IN TELEGRAM
Совсем скоро наступит 2025 год! По этому поводу эксперты сообщества подготовили для Вас небольшое видео-поздравление. Желаем приятного просмотра 🥳
С Новым годом, друзья!
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥75👍21❤13⚡3🤩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 в тестовом классе следующим образом:
Всего несколько строк кода — и интеграция автоматически создаст мок-сервер, настроит его и возьмёт на себя управление его жизненным циклом.
3. Поддержка Extension Factories через аннотации конфигурации. Благодаря этому нововведению процесс подключения расширений WireMock, таких как gRPC или любых других пользовательских плагинов, значительно упростился. Теперь для загрузки gRPC-расширения WireMock достаточно указать всего один параметр в конфигурации:
4. Динамическое выделение портов и интеграция с пропертями. Одной из частых проблем при тестировании с мок-серверами является конфликт портов. WireMock решает эту задачу за счёт динамического назначения портов, что уменьшает вероятность конфликтов. Однако такой подход требует передачи номера порта в базовый URL HTTP-клиента внутри Spring Boot приложения, что может быть не таким уж простым процессом.
Интеграция WireMock с Spring Boot решает этот вопрос: порт WireMock (и другие полезные параметры среды выполнения) автоматически добавляются в контекст приложения в виде свойств, за счёт чего легко получить назначенный порт и использовать его для настройки API-зависимостей тестируемого приложения. Например:
Начало работы с WireMock в Spring Boot:
Чтобы начать использовать официальную интеграцию WireMock с Spring Boot, добавьте в ваш
🔗 Для примеров и подробной информации о работе с 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👍25❤14
Команда 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
👍25❤9🔥7
Лучше поздно, чем никогда... Хотя, сегодня - старый Новый год! 🎅
Во втором выпуске подкаста Spring АйО в студии собрались 5 экспертов сообщества, чтобы обсудить несколько вопросов и поздравить участников сообщества с Новым годом!
💬 Аудио версию подкаста можно найти в комментариях
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥18👍10❤8⚡1
⚙️ Постквантовая криптография в Java
Команда Spring АйО перевела статью про новые возможности грядущей версии Java 24, в которой появятся два JEP — 496 и 497, посвященные алгоритмам, устойчивым к квантовым атакам.
Эти технологии базируются на решеточной криптографии и помогут защитить данные от возможных угроз будущих квантовых компьютеров. Хотя их создание — дело не ближайших лет, разработчики уже готовятся к изменениям.
📚 Читать на Хабре: https://habr.com/ru/companies/spring_aio/articles/873886/
Команда Spring АйО перевела статью про новые возможности грядущей версии Java 24, в которой появятся два JEP — 496 и 497, посвященные алгоритмам, устойчивым к квантовым атакам.
Эти технологии базируются на решеточной криптографии и помогут защитить данные от возможных угроз будущих квантовых компьютеров. Хотя их создание — дело не ближайших лет, разработчики уже готовятся к изменениям.
📚 Читать на Хабре: https://habr.com/ru/companies/spring_aio/articles/873886/
🔥23❤10👍7⚡4🤔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/
Команда 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👎7❤6🤩2
🌟 Event-Driven микросервисы: масштабируемая архитектура с Kafka и Spring Boot
Event-driven архитектура - один из видов архитектур, который подходит для обеспечения независимости, масштабируемости и устойчивости микросервисов.
В новом переводе от команды Spring АйО вы в легкодоступной форме узнаете, как построить такую архитектуру, используя Apache Kafka и Spring Boot, а также ознакомитесь с пошаговой настройкой продюсеров, консьюмеров, решеним задач надежности и управлением схемами.
📚 Читать на Хабр: https://habr.com/ru/companies/spring_aio/articles/874488/
Event-driven архитектура - один из видов архитектур, который подходит для обеспечения независимости, масштабируемости и устойчивости микросервисов.
В новом переводе от команды Spring АйО вы в легкодоступной форме узнаете, как построить такую архитектуру, используя Apache Kafka и Spring Boot, а также ознакомитесь с пошаговой настройкой продюсеров, консьюмеров, решеним задач надежности и управлением схемами.
📚 Читать на Хабр: https://habr.com/ru/companies/spring_aio/articles/874488/
🔥19👍8❤3👎1
Каким способом вы разворачиваете своё приложение в продакшене?
Anonymous Poll
16%
Действую по старинке: запускаю JAR, WAR, Uber-JAR, Fat-JAR на виртуалках
30%
Деплоюсь по взрослому на своём железе: Kubernetes, Helm
25%
Облака наше все: Kubernetes, Helm, Terraform
28%
Easy-peasy: Docker, Docker Compose
8%
Использую Ansible и модули для Docker/Kubernetes
12%
Я не знаю, как приложение оказывается в продакшене
3%
Иначе, напишу в комментариях
🔥11👍5❤3👌1
Для тех, кто был слишком занят на неделе или просто пропустил некоторые посты, публикуем дайджест!
– У WireMock теперь есть официальная интеграция со Spring Boot!
– Jakarta Data и Persistence: Инструменты, которые меняют подход к работе с данными
– Spring АйО - Новогодний подкаст
– Постквантовая криптография в Java
– Первая EAP-версия IntelliJ IDEA 2025.1 уже доступна!
– Event-Driven микросервисы: масштабируемая архитектура с Kafka и Spring Boot
– Каким способом вы разворачиваете своё приложение в продакшене?
– Что делает Axiom JDK для OpenIDE
– Joker 2024: записи докладов из блока «Data and storage»
Please open Telegram to view this post
VIEW IN TELEGRAM
👍17❤5🔥5
В третьем выпуске подкаста Spring АйО в студии собрались 3 эксперта сообщества, чтобы обсудить новинки из мира тулов, постквантовую криптографию, Jakarta Data, IntelliJ IDEA 2025.1 EAP, способы деплоя Java-приложения в продакшн, а также Event-Driven микросервисы.
💬 Аудио версию подкаста можно найти в комментариях
Please open Telegram to view this post
VIEW IN TELEGRAM
👍16🔥8❤5
Отвечает эксперт сообщества 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
👍46❤10🔥7🤯5⚡2
Сегодня любой 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
👍37❤7🔥6
Ровно 29 лет назад, 23 января 1996 года, вышла первая мажорная версия JDK и с тех пор Java прочно заняла место в наших сердцах.
Его кредо
«Write once, run anywhere»
стало символом универсальности и удобства.
За почти три десятилетия Java эволюционировала, превратившись из языка для программирования бытовых устройств в мощнейшую платформу для разработки ПО, мобильных приложений, игр, облачных решений и многого другого.
Этот язык стал основой для огромного количества проектов, и каждый из нас, как Java-разработчик, вносит вклад в это удивительное сообщество.
Давайте продолжим писать историю этого языка вместе!
С днем рождения, Java!
💬 А какие у вас самые яркие воспоминания, связанные с Java? Поделитесь в комментариях!
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥63❤33👍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/
Команда Spring АйО перевела статью от JetBrains про релиз второй версии EAP для IntelliJ IDEA 2025.1.
Среди нововведений — поддержка Containerfile и обновления для Dockerfile.
📚 Читать на Хабр: https://habr.com/ru/companies/spring_aio/articles/876112/
👍11🔥5❤3
На официальном блоге spring.io появилась информация о первых майлстоунах для следующих версий Spring Framework и Spring Boot:
Что важно знать:
org.springframework.lang
заменяются на стандарт JSpecify💬 А вы уже готовы обновляться?)
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥22⚡8❤4🤔3
🔍 Демистификация размеров объектов в Java: компактные заголовки, сжатые указатели и многое другое
Понимание размера объектов в Java — важный шаг для оптимизации памяти в высоконагруженных системах.
В новом переводе от команды Spring АйО вы узнаете про использование HotSpot JVM таких механизмов, как сжатые указатели (Compressed Oops) и компактные заголовки объектов (Compact Object Headers), необходимых для минимизации объема занимаемой памяти.
📚 Читать на Хабр: https://habr.com/ru/companies/spring_aio/articles/876352/
Понимание размера объектов в Java — важный шаг для оптимизации памяти в высоконагруженных системах.
В новом переводе от команды Spring АйО вы узнаете про использование HotSpot JVM таких механизмов, как сжатые указатели (Compressed Oops) и компактные заголовки объектов (Compact Object Headers), необходимых для минимизации объема занимаемой памяти.
📚 Читать на Хабр: https://habr.com/ru/companies/spring_aio/articles/876352/
👍17❤5🔥5
Для тех, кто был слишком занят на неделе или просто пропустил некоторые посты, публикуем дайджест!
– Новинки из мира тулов, постквантовая криптография и Jakarta Data | Spring АйО Подкаст №3
– Spring Framework переходит на DCO: что это означает для сообщества?
– Маппинг даты и времени в Hibernate и JPA
– 29 лет с момента выхода JDK 1.0
– IntelliJ IDEA 2025.1 EAP 2
– Spring Framework 7.0.0-M1 и Spring Boot 3.5.0-M1
– Демистификация размеров объектов в Java: компактные заголовки, сжатые указатели и многое другое
– Axiom JDK: Быстрая разработка java приложений на Axiom JDK и Jmix
– Joker: Антон Курако — Цена докторской степени по Spring
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥15👍10❤6
Media is too big
VIEW IN TELEGRAM
💬 Аудио версию подкаста можно найти в комментариях
Please open Telegram to view this post
VIEW IN TELEGRAM
😁23👍12🔥10🤔2❤1
Основной причиной этого стала активность в секторе искусственного интеллекта, в частности запуск китайским стартапом DeepSeek крупной языковой модели DeepSeek-R1. Эта модель использует менее продвинутые, но более экономичные полупроводниковые чипы, что быстро принесло ей популярность.
Релиз вышеупомянутой языковой модели негативно повлиял на стоимость акций таких крупных американских компаний как Nvidia, Microsoft, Oracle, Broadcom и многих других.
Для Spring-сообщества эта новость может быть особенно интересной, так как Broadcom владеет VMware, которая в свою очередь поддерживает экосистему Spring.
#spring_news
Please open Telegram to view this post
VIEW IN TELEGRAM
🤯16👍14⚡5🤔4🔥3😁1