В начале декабря эксперты сообщества Spring АйО приняли участие в Java Rock Stars Meetup.
Для тех, кто не смог присутствовать на мероприятии, прикрепляем ссылки на записи докладов.
🧢 Михаил Поливаха — "Spring Data JPA: всё сложнее, чем кажется"
🎾 Павел Кислов — "Spring Security: как дела?"
P.S. А те, кто были оффлайн, - ищите себя в фотоальбоме 😉
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥31👍14❤5
Для тех, кто был слишком занят на неделе или просто пропустил некоторые посты, публикуем дайджест!
– Опрос: Какие брокеры сообщений используете в продакшене?
– Вся правда о @Subselect: преимущества, недостатки и альтернативы в Hibernate
– Gradle: Исправление зависимостей в один клик
– Записи докладов с Java Rock Stars Meetup
– Компания Haulmont совместно с Группой Астра и Axiom JDK анонсировала некоммерческое партнерство для развития открытой российской среды разработки – OpenIDE
– Новый HTTP-клиент от Amplicode на Kotlin Script для Spring-приложений и не только
– Axiom JDK: Как мы делаем Java: 30 лет истории российской разработки
– Joker опубликовал доклад "Владимир Ситников — Обратная совместимость в Java-мире"
Please open Telegram to view this post
VIEW IN TELEGRAM
👍19🔥5❤3
🧠 AI-ассистент с помощью Spring AI
Команда Spring АйО перевела туториал, в котором рассматриваются возможности Spring AI для интеграции с LLM.
Вы узнаете, как использовать API Function Calling для выполнения задач на естественном языке, генерировать ответы в JSON-формате и сохранять контекст диалога.
📚 Читайте на Хабре: https://habr.com/ru/companies/spring_aio/articles/869080/
Команда Spring АйО перевела туториал, в котором рассматриваются возможности Spring AI для интеграции с LLM.
Вы узнаете, как использовать API Function Calling для выполнения задач на естественном языке, генерировать ответы в JSON-формате и сохранять контекст диалога.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍24🔥10❤4
🏁 Как жить без IntelliJ IDEA? Часть 5. Заключение
В предыдущей статье "Как жить без IntelliJ IDEA" мы рассмотрели, есть ли альтернативы полюбившейся многим возможностям Ultimate общаться с базой данных через удобный UI прямо в среде разработки.
Наступил конец года и вместе с ним завершается наш цикл статей. Давайте коротко перечислим итоги каждой части, посмотрим, что мы пропустили, а также попробуем представить, как бы выглядело идеальное решение.
📚 Читать на Хабре: https://habr.com/ru/companies/spring_aio/articles/869354/
В предыдущей статье "Как жить без IntelliJ IDEA" мы рассмотрели, есть ли альтернативы полюбившейся многим возможностям Ultimate общаться с базой данных через удобный UI прямо в среде разработки.
Наступил конец года и вместе с ним завершается наш цикл статей. Давайте коротко перечислим итоги каждой части, посмотрим, что мы пропустили, а также попробуем представить, как бы выглядело идеальное решение.
📚 Читать на Хабре: https://habr.com/ru/companies/spring_aio/articles/869354/
👍18🔥6❤5👎1
С выходом JDK 24 Stream API станет еще мощнее благодаря новому инструменту — Stream Gatherers. Этот подход позволит разработчикам создавать собственные промежуточные операции в потоках, повышая гибкость и выразительность программного кода.
Почему это важно?
До сих пор Stream API предлагал фиксированный набор операций, таких как map, filter, distinct, и другие. Однако некоторые задачи не могли быть легко решены встроенными методами. Например, если вы хотите выделить уникальные строки на основе их длины, это требовало сложных обходных путей:
record DistinctByLength(String str) {
@Override public boolean equals(Object obj) {
return obj instanceof DistinctByLength other && str.length() == other.str.length();
}
@Override public int hashCode() {
return str.length();
}
}
var result = Stream.of("foo", "bar", "baz", "quux")
.map(DistinctByLength::new)
.distinct()
.map(DistinctByLength::str)
.toList();
// result ==> [foo, quux]
С выходом фичи задача будет решаться гораздо проще:
var result = Stream.of("foo", "bar", "baz", "quux")
.gather(Gatherers.distinctBy(String::length))
.toList();
// result ==> [foo, quux]
Как работает Gatherer?
Gatherer — это интерфейс, задающий логику преобразования элементов потока. Его работа строится на четырех функциях:
1. initializer — создает объект для хранения состояния.
2. integrator — обрабатывает элементы потока, при необходимости записывая данные в состояние.
3. combiner — объединяет результаты для параллельных потоков.
4. finisher — выполняет финальные действия, такие как добавление оставшихся данных.
Например, gatherer windowFixed группирует элементы в списки фиксированного размера:
Stream.of(1, 2, 3, 4, 5, 6, 7, 8, 9)
.gather(Gatherers.windowFixed(3))
.toList();
// result ==> [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
Что это дает разработчику?
1. Гибкость: Возможность определять операции любой сложности.
2. Параллельность: Поддержка многопоточности при использовании combiner.
3. Снижение сложности: Простое выражение сложных операций без использования обходных решений.
4. Поддержка Stateful Stream Processing подхода
Заключение
JEP 485 — это достойный вклад в развитие Stream API, предоставляющий разработчикам инструменты для создания более выразительных и производительных потоков.
🔗 С полным описанием JEP можно ознакомиться по ссылке: https://openjdk.org/jeps/485
#Java #JEP
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥63👍21❤7🤔6⚡2👎1
Forwarded from Amplicode (Aleksandr)
Каждый год мы проводим анализ использования технологий, связанных с экосистемой Spring.
Краткие результаты 2024 года в сравнении с прошлым годом:
1) Десять наиболее популярных технологий 2023 года остались в топе и в 2024 году.
2) Количество проектов на Spring Boot выросло в 2 раза. С бóльшей долей вероятности это связано с растущей популярностью Spring Boot.
3) Облачные технологии всё также продолжают набирать обороты в своей популярности.
4) Наблюдается явный рост использования микросервисных архитектур.
5) Рост Spring Data JDBC. Объяснить это можно несколькими причинами, но основная - стремление к упрощению небольших проектов в связи с высоким порогом входа в Hibernate, а также высокой ценой поддержки таких проектов.
6) Заметное развитие AI-технологий наподобие Spring AI. Точные цифры приведём уже в следующем году, ввиду новизны данных технологий.
Все данные были получены путем анализа зависимостей, используемых в проектах на GitHub.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥23👍13❤6
Вместе мы выросли до сообщества, объединяющего более 5000 Spring-разработчиков! Ваша активность, поддержка и интерес к нашему контенту вдохновляют нас двигаться дальше.
В 2025 году мы приготовили для вас не менее амбициозные планы. Мы продолжим делиться с вами полезными материалами, обсуждать актуальные темы и развивать наше сообщество, чтобы каждому из вас было интересно и полезно быть частью этого движения.
Спасибо, что выбираете нас! Вместе мы сможем ещё больше.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
6👍64❤32🔥22⚡6
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
😁38🔥7👍4❤2
Для тех, кто был слишком занят на неделе или просто пропустил некоторые посты, публикуем дайджест!
– 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