Spring АйО – Telegram
Spring АйО
9.6K subscribers
377 photos
276 videos
496 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
✍️ Закладки в Spring Initializr: создавайте проекты быстрее!

В Spring Initializr появилась новая фича — закладки. Вы можете сохранить ваши настроенные конфигурации проектов и мгновенно возвращаться к ним для генерации новых проектов.

Больше не нужно тратить время на повторное заполнение полей — просто выберите нужную закладку, и ваш проект готов за считанные секунды.
19🔥12👍114👎1🤔1
🧠 Горькая правда о программировании с использованием ИИ

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

Такой «парадокс знаний» подчеркивает, что ИИ скорее дополняет скиллы опытных специалистов, чем делает разработку доступной для всех. Новичкам же важно воспринимать ИИ как инструмент обучения, но никак не замену знаниям и опыту. Так ли это?

📚 Подробности в новом переводе от команды Spring АйО: https://habr.com/ru/companies/spring_aio/articles/865720/
Please open Telegram to view this post
VIEW IN TELEGRAM
👍23🔥751
⚡️ Как жить без IntelliJ IDEA? Часть №4. Database Client

В новой статье из цикла "Как жить без IntelliJ IDEA" команда Spring АйО изучила альтернативы DB-клиенту от JetBrains, входящему в состав Ultimate и полюбившемуся многим разработчикам.

Мы также постарались выяснить, насколько альтернативные инструменты удобны и эффективны на практике.

📚 Читать на Хабр: https://habr.com/ru/companies/spring_aio/articles/866500/
Please open Telegram to view this post
VIEW IN TELEGRAM
👍236🔥5👎3😁21
⚡️ OpenIDE – открытая IDE для российских разработчиков

Компания Haulmont совместно с Группой Астра и Axiom JDK анонсировала некоммерческое партнерство для развития открытой российской среды разработки – OpenIDE.

Почему это хорошая новость для российских разработчиков? Чем OpenIDE отличается от IntelliJ IDEA CE или уже существующей российской GigaIDE? Какие языки будут поддерживаться? Что со Spring? Когда релиз?

📚 Читайте на Хабре: https://habr.com/ru/companies/haulmont/articles/866388/

#breaking_news #openide
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥3718🤯11👍7👎3😁2🤔21
🙈 Вся правда о @Subselect: преимущества, недостатки и альтернативы в Hibernate

В современных приложениях иногда возникает необходимость получать данные из сложных запросов и аннотация @Subselect в Hibernate может стать отличным решением.

В новой статье от эксперта сообщества Spring АйО, Михаила Поливахи, вы узнаете как использовать @Subselect, какие существуют альтернативы и в чём заключаются их преимущества и недостатки.

📚 Читайте на Хабре: https://habr.com/ru/companies/spring_aio/articles/867662/
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥226👍6
Forwarded from Amplicode
🏝 Новый HTTP-клиент от Amplicode на Kotlin Script для Spring-приложений и не только

В новом видео вы узнаете:
︎ Почему мы решили разработать собственный HTTP-клиент
︎ Чем он выделяется на фоне альтернативных решений
︎ Какие возможности открывает для Spring-разработчиков и не только
︎ Как писать запросы разного уровня сложности
︎ И в каком направлении мы будем развивать наше решение

😉 СМОТРЕТЬ НА YOUTUBE
😄 СМОТРЕТЬ В VK ВИДЕО
🥰 СМОТРЕТЬ НА RUTUBE
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥22👍125👎1
🛠 Gradle: Исправление зависимостей в один клик

Работаете с Gradle? Dependency Analysis Gradle Plugin помогает не только находить лишние зависимости, но и автоматически исправлять проблемы с ними.

Механизм fixDependencies переписывает скрипты сборки, чтобы они соответствовали реальной структуре проекта. Последние обновления сделали процесс анализа ещё точнее, а работу с Kotlin DSL — проще и надёжнее.

📚 Читайте про фикс зависимостей в один клик в новом переводе от команды SpringАйО: https://habr.com/ru/companies/spring_aio/articles/868440/
Please open Telegram to view this post
VIEW IN TELEGRAM
👍246🔥5👌3
🍿 Записи докладов с Java Rock Stars Meetup

В начале декабря эксперты сообщества Spring АйО приняли участие в Java Rock Stars Meetup.

Для тех, кто не смог присутствовать на мероприятии, прикрепляем ссылки на записи докладов.

🧢 Михаил Поливаха "Spring Data JPA: всё сложнее, чем кажется"

🌐 Смотреть на YouTube
🌍 Смотреть на VK Видео

🎾 Павел Кислов "Spring Security: как дела?"

🌐 Смотреть на YouTube
🌍 Смотреть на VK Видео

P.S. А те, кто были оффлайн, - ищите себя в фотоальбоме 😉
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥31👍145
🧠 AI-ассистент с помощью Spring AI

Команда Spring АйО перевела туториал, в котором рассматриваются возможности Spring AI для интеграции с LLM.

Вы узнаете, как использовать API Function Calling для выполнения задач на естественном языке, генерировать ответы в JSON-формате и сохранять контекст диалога.

📚 Читайте на Хабре: https://habr.com/ru/companies/spring_aio/articles/869080/
Please open Telegram to view this post
VIEW IN TELEGRAM
👍24🔥104
🏁 Как жить без IntelliJ IDEA? Часть 5. Заключение

В предыдущей статье "Как жить без IntelliJ IDEA" мы рассмотрели, есть ли альтернативы полюбившейся многим возможностям Ultimate общаться с базой данных через удобный UI прямо в среде разработки.

Наступил конец года и вместе с ним завершается наш цикл статей. Давайте коротко перечислим итоги каждой части, посмотрим, что мы пропустили, а также попробуем представить, как бы выглядело идеальное решение.

📚 Читать на Хабре: https://habr.com/ru/companies/spring_aio/articles/869354/
👍18🔥65👎1
👩‍💻 JEP 485: Stream Gatherers

С выходом 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👍217🤔62👎1