fosstodon.org is one of the many independent Mastodon servers you can use to participate in the fediverse.
Fosstodon is an invite only Mastodon instance that is open to those who are interested in technology; particularly free & open source software. If you wish to join, contact us for an invite.

Administered by:

Server stats:

10K
active users

#spring_boot

2 posts2 participants0 posts today
Habr<p>[Перевод] SBOM в Spring Boot: от генерации до анализа уязвимостей</p><p>Команда Spring АйО перевела статью, которая расскажет вам, как правильно использовать SBOM файлы в Spring Boot для проверок безопасности приложений. Статья содержит примеры кода и выводимых при проверке данных, а также помогает правильно трактовать эти данные.</p><p><a href="https://habr.com/ru/companies/spring_aio/articles/899018/" rel="nofollow noopener noreferrer" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">habr.com/ru/companies/spring_a</span><span class="invisible">io/articles/899018/</span></a></p><p><a href="https://zhub.link/tags/java" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>java</span></a> <a href="https://zhub.link/tags/spring" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>spring</span></a> <a href="https://zhub.link/tags/spring_boot" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>spring_boot</span></a> <a href="https://zhub.link/tags/sbom" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>sbom</span></a> <a href="https://zhub.link/tags/snyk_cli" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>snyk_cli</span></a> <a href="https://zhub.link/tags/security" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>security</span></a></p>
Habr<p>Java Digest #23</p><p>Всем привет! 👋👋👋👋👋 Мы Java-разработчики Т-Банка: Андрей , Арсений , Константин , Константин и Роман. Собираем интересные новости, статьи, туториалы и другие материалы из мира Java-разработки и делимся этим со всем сообществом. В этом выпуске будет много релизов, один из них — новый майлстоун Spring 7.0.0, а еще — новые версии Quarkus и Kora. Снова узнаем, как сделать Spring быстрее, вспомним старые хорошие доклады в новом формате и посмотрим на фичи Java 24 на примере крестиков-ноликов.</p><p><a href="https://habr.com/ru/companies/tbank/articles/898284/" rel="nofollow noopener noreferrer" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">habr.com/ru/companies/tbank/ar</span><span class="invisible">ticles/898284/</span></a></p><p><a href="https://zhub.link/tags/spring_boot" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>spring_boot</span></a> <a href="https://zhub.link/tags/spring" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>spring</span></a> <a href="https://zhub.link/tags/quarkus" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>quarkus</span></a> <a href="https://zhub.link/tags/java" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>java</span></a> <a href="https://zhub.link/tags/digest" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>digest</span></a></p>
Habr<p>Лучшие практики создания отказоустойчивых систем</p><p>Разработка отказоустойчивых систем представляет собой важнейшую компетенцию для инженеров, занятых созданием распределённых и масштабируемых приложений. Под отказоустойчивостью понимается способность системы сохранять работоспособность в условиях сбоев отдельных компонентов или недоступности внешних сервисов. В данной статье рассматриваются практики обеспечения устойчивости на уровне программного кода, в частности в контексте серверных приложений, реализованных на языках Python и Java. Особое внимание уделяется методам повышения надёжности при временных сбоях, включая: повторные попытки выполнения операций с экспоненциальной задержкой (exponential backoff), использование шаблона circuit breaker, механизмы плавной деградации функциональности (graceful degradation), задание таймаутов, реализация идемпотентности, ограничение одновременных вызовов (bulkhead isolation), а также внедрение систем мониторинга и алертинга. Приводимые примеры охватывают типовые сценарии — обращение к внешним API, взаимодействие с базами данных и выполнение фоновых задач.</p><p><a href="https://habr.com/ru/articles/896638/" rel="nofollow noopener noreferrer" translate="no" target="_blank"><span class="invisible">https://</span><span class="">habr.com/ru/articles/896638/</span><span class="invisible"></span></a></p><p><a href="https://zhub.link/tags/python" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>python</span></a> <a href="https://zhub.link/tags/java" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>java</span></a> <a href="https://zhub.link/tags/spring_boot" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>spring_boot</span></a> <a href="https://zhub.link/tags/aiohttp" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>aiohttp</span></a> <a href="https://zhub.link/tags/%D0%B1%D0%B5%D0%B7%D0%BE%D0%BF%D0%B0%D1%81%D0%BD%D0%BE%D1%81%D1%82%D1%8C" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>безопасность</span></a> <a href="https://zhub.link/tags/%D0%BE%D1%82%D0%BA%D0%B0%D0%B7%D0%BE%D1%83%D1%81%D1%82%D0%BE%D0%B9%D1%87%D0%B8%D0%B2%D1%8B%D0%B5_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D1%8B" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>отказоустойчивые_системы</span></a> <a href="https://zhub.link/tags/%D0%BE%D1%82%D0%BA%D0%B0%D0%B7%D0%BE%D1%83%D1%81%D1%82%D0%BE%D0%B9%D1%87%D0%B8%D0%B2%D0%BE%D1%81%D1%82%D1%8C" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>отказоустойчивость</span></a> <a href="https://zhub.link/tags/%D1%87%D0%B8%D1%81%D1%82%D1%8B%D0%B9_%D0%BA%D0%BE%D0%B4" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>чистый_код</span></a></p>
Habr<p>[Перевод] SAML2 ещё жив?! Как интегрировать Keycloak со Spring Boot в 2025 году</p><p>Команда Spring АйО перевела статью совместном использовании Spring Boot, SAML2 и Keycloak при запуске приложений. Здесь также приводятся некоторые кастомизированные решения, позволяющие более гибко работать с упомянутым набором технологий.</p><p><a href="https://habr.com/ru/companies/spring_aio/articles/895022/" rel="nofollow noopener noreferrer" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">habr.com/ru/companies/spring_a</span><span class="invisible">io/articles/895022/</span></a></p><p><a href="https://zhub.link/tags/SAML2" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>SAML2</span></a> <a href="https://zhub.link/tags/Keycloak" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>Keycloak</span></a> <a href="https://zhub.link/tags/Spring_Boot" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>Spring_Boot</span></a> <a href="https://zhub.link/tags/IdP" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>IdP</span></a> <a href="https://zhub.link/tags/REST" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>REST</span></a></p>
Habr<p>Реализация RPC во внутреннем взаимодействии модулей с Spring Boot</p><p>В какой-то момент я настолько устал настраивать все эти мелочи для REST-взаимодействия в микросервисах, что реализовал механизм, который сильно упрощает эту работу. И я уверен, что вам стоит прочитать эту статью, если: Вы используете Java и Spring Boot в своей работе. Ваш проект строится на микросервисной архитектуре. Вас раздражает бесконечное описание REST-контрактов и их поддержку. А если у вас остались шрамы после попыток внедрения gRPC, то тем более рекомендую дочитать до конца. В статье мы рассмотрим альтернативный подход к взаимодействию между сервисами — легковесное RPC-решение, которое удобно использовать внутри одного продукта. Оно не претендует на замену публичных API, но значительно упрощает жизнь внутри команды, где "правила игры" можно обсудить за кружкой пива.</p><p><a href="https://habr.com/ru/articles/895172/" rel="nofollow noopener noreferrer" translate="no" target="_blank"><span class="invisible">https://</span><span class="">habr.com/ru/articles/895172/</span><span class="invisible"></span></a></p><p><a href="https://zhub.link/tags/java" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>java</span></a> <a href="https://zhub.link/tags/spring_boot" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>spring_boot</span></a> <a href="https://zhub.link/tags/rpc" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>rpc</span></a></p>
Habr<p>[Перевод] Сравнение SpringRunner со SpringExtension и @SpringBootTest</p><p>Команда Spring АйО перевела статью о том, как и когда использовать SpringRunner , SpringExtension и @SpringBootTest , когда их целесообразно комбинировать и как правильное понимание этих компонентов может помочь сделать тесты проще, быстрее и более узконаправленными.</p><p><a href="https://habr.com/ru/companies/spring_aio/articles/894400/" rel="nofollow noopener noreferrer" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">habr.com/ru/companies/spring_a</span><span class="invisible">io/articles/894400/</span></a></p><p><a href="https://zhub.link/tags/SpringRunner" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>SpringRunner</span></a> <a href="https://zhub.link/tags/SpringExtension" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>SpringExtension</span></a> <a href="https://zhub.link/tags/SpringBootTest" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>SpringBootTest</span></a> <a href="https://zhub.link/tags/junit" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>junit</span></a> <a href="https://zhub.link/tags/spring" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>spring</span></a> <a href="https://zhub.link/tags/MockMvc" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>MockMvc</span></a> <a href="https://zhub.link/tags/Spring_Boot" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>Spring_Boot</span></a></p>
Habr<p>Создаем Spring Boot Starter для Kafka с Avro: пошаговое руководство</p><p>Интеграция Apache Kafka в проекты на Spring Boot часто требует много boilerplate-кода. В этой статье я делюсь опытом создания кастомного стартера kafka-spring-boot-starter, который упрощает настройку продюсера и консюмера Kafka с поддержкой Avro-сериализации. Рассказываю, как решал проблемы с тестами (например, auto.offset.reset=latest) и адаптировал стартер для гибкой работы со схемами. Вы найдёте примеры конфигураций для надёжной доставки, потоковой обработки и ретраев, а также лучшие практики разработки стартеров. Бонус в конце — удобный обзор ключевых настроек Kafka для продюсера и консюмера.</p><p><a href="https://habr.com/ru/companies/sberbank/articles/894402/" rel="nofollow noopener noreferrer" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">habr.com/ru/companies/sberbank</span><span class="invisible">/articles/894402/</span></a></p><p><a href="https://zhub.link/tags/kafka" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>kafka</span></a> <a href="https://zhub.link/tags/spring_boot" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>spring_boot</span></a> <a href="https://zhub.link/tags/%D1%81%D1%82%D0%B0%D1%80%D1%82%D0%B5%D1%80" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>стартер</span></a> <a href="https://zhub.link/tags/java" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>java</span></a> <a href="https://zhub.link/tags/avro" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>avro</span></a> <a href="https://zhub.link/tags/%D0%B0%D0%B2%D1%82%D0%BE%D0%BA%D0%BE%D0%BD%D1%84%D0%B8%D0%B3%D1%83%D1%80%D0%B0%D1%86%D0%B8%D1%8F" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>автоконфигурация</span></a> <a href="https://zhub.link/tags/%D0%BF%D0%BE%D1%82%D0%BE%D0%BA%D0%BE%D0%B2%D0%B0%D1%8F_%D0%BE%D0%B1%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%BA%D0%B0" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>потоковая_обработка</span></a> <a href="https://zhub.link/tags/testcontainers" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>testcontainers</span></a></p>
Habr<p>Подводный камень в docker env и java</p><p>Столкнулся с небольшим с интересным моментом: внедрение переменных окружения (а ля environment variables ) в стандартный микросервис написанный на Java (классика жанра – Spring Boot ). Читать далее (Тема не сложная)</p><p><a href="https://habr.com/ru/articles/894384/" rel="nofollow noopener noreferrer" translate="no" target="_blank"><span class="invisible">https://</span><span class="">habr.com/ru/articles/894384/</span><span class="invisible"></span></a></p><p><a href="https://zhub.link/tags/Java" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>Java</span></a> <a href="https://zhub.link/tags/Spring_Boot" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>Spring_Boot</span></a> <a href="https://zhub.link/tags/apache_maven" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>apache_maven</span></a> <a href="https://zhub.link/tags/docker" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>docker</span></a> <a href="https://zhub.link/tags/multistage" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>multistage</span></a> <a href="https://zhub.link/tags/build" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>build</span></a> <a href="https://zhub.link/tags/environment_variables" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>environment_variables</span></a> <a href="https://zhub.link/tags/example" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>example</span></a> <a href="https://zhub.link/tags/%D0%BC%D0%B8%D0%BA%D1%80%D0%BE%D1%81%D0%B5%D1%80%D0%B2%D0%B8%D1%81%D1%8B" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>микросервисы</span></a> <a href="https://zhub.link/tags/web" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>web</span></a></p>
Habr<p>[Перевод] На страже производительности Spring Boot приложений: Профилирование и оптимизация</p><p>Spring Boot широко используется для создания масштабируемых и эффективных Java‑приложений. Однако по мере усложнения или масштабирования вашего приложения могут начать проявляться узкие места производительности, что приводит к замедлению времени отклика и увеличению потребления ресурсов. Выявление и устранение этих узких мест является важнейшей составляющей процесса оптимизации производительности вашего приложения, особенно в производственных средах. В этой статье мы подробно рассмотрим, как можно оптимизировать производительность Spring Boot приложений, используя базовые методы профилирования и тюнинга. Особое внимание будет уделено таким аспектам, как профилирование процессора и памяти, оптимизация сборки мусора и тюнинг виртуальной машины Java (JVM).</p><p><a href="https://habr.com/ru/companies/otus/articles/892716/" rel="nofollow noopener noreferrer" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">habr.com/ru/companies/otus/art</span><span class="invisible">icles/892716/</span></a></p><p><a href="https://zhub.link/tags/java" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>java</span></a> <a href="https://zhub.link/tags/spring" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>spring</span></a> <a href="https://zhub.link/tags/spring_boot" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>spring_boot</span></a> <a href="https://zhub.link/tags/%D0%BF%D1%80%D0%BE%D0%B8%D0%B7%D0%B2%D0%BE%D0%B4%D0%B8%D1%82%D0%B5%D0%BB%D1%8C%D0%BD%D0%BE%D1%81%D1%82%D1%8C" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>производительность</span></a> <a href="https://zhub.link/tags/JVM" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>JVM</span></a> <a href="https://zhub.link/tags/%D0%BE%D0%BF%D1%82%D0%B8%D0%BC%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D1%8F_%D0%BF%D1%80%D0%BE%D0%B8%D0%B7%D0%B2%D0%BE%D0%B4%D0%B8%D1%82%D0%B5%D0%BB%D1%8C%D0%BD%D0%BE%D1%81%D1%82%D0%B8" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>оптимизация_производительности</span></a></p>
Habr<p>[Перевод] Эффективный подход к тестированию веб-контроллеров в Spring Boot приложениях</p><p>Команда Spring АйО перевела статью о том, как правильно подходить к тестированию веб-контроллеров в Spring Boot приложениях, чтобы не делать лишнюю работу, но и не упускать важных аспектов процесса тестирования.</p><p><a href="https://habr.com/ru/companies/spring_aio/articles/892194/" rel="nofollow noopener noreferrer" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">habr.com/ru/companies/spring_a</span><span class="invisible">io/articles/892194/</span></a></p><p><a href="https://zhub.link/tags/web_controller" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>web_controller</span></a> <a href="https://zhub.link/tags/spring_boot" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>spring_boot</span></a> <a href="https://zhub.link/tags/mock" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>mock</span></a> <a href="https://zhub.link/tags/testing" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>testing</span></a> <a href="https://zhub.link/tags/unit_test" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>unit_test</span></a> <a href="https://zhub.link/tags/mockito" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>mockito</span></a></p>
Habr<p>Автоматизация деплоя: из Bitbucket через Jenkins в MicroK8s — опыт финтех-разработчика</p><p>Всем привет! Я — Java-разработчик с пятилетним опытом в финтехе, и сегодня я расскажу, как настроить CI/CD для деплоя Spring Boot приложения из Bitbucket через Jenkins в MicroK8s. Это не просто теория — я поделюсь реальным кейсом, разберу ошибки, с которыми столкнулся, и дам рабочий код. Если вы хотите автоматизировать деплой и не наступать на грабли — поехали! Представьте: у вас есть микросервис на Spring Boot, который нужно быстро и без ошибок доставить в продакшен. Ручной деплой отнимает время, а команда требует стабильности. Я решил эту задачу с помощью Bitbucket, Jenkins и MicroK8s, но путь оказался не таким гладким, как хотелось бы. Проблемы с аутентификацией, конфликты портов и настройка окружения заставили меня попотеть. Как я справился? Об этом — в статье. CI/CD (Continuous Integration/Continuous Deployment) — это must-have для современных разработчиков. Автоматизация сборки, тестирования и деплоя приложений экономит время, снижает вероятность ошибок и ускоряет доставку кода до продакшена. В этой статье мы разберем, как настроить полноценный CI/CD-пайплайн для Spring Boot приложения, используя связку Bitbucket, Jenkins и MicroK8s.</p><p><a href="https://habr.com/ru/articles/891844/" rel="nofollow noopener noreferrer" translate="no" target="_blank"><span class="invisible">https://</span><span class="">habr.com/ru/articles/891844/</span><span class="invisible"></span></a></p><p><a href="https://zhub.link/tags/ci_cd" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>ci_cd</span></a> <a href="https://zhub.link/tags/bitbucket" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>bitbucket</span></a> <a href="https://zhub.link/tags/jenkins" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>jenkins</span></a> <a href="https://zhub.link/tags/microk8s" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>microk8s</span></a> <a href="https://zhub.link/tags/spring_boot" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>spring_boot</span></a> <a href="https://zhub.link/tags/kubernetes" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>kubernetes</span></a> <a href="https://zhub.link/tags/%D0%B4%D0%B5%D0%BB%D0%BE%D0%B9" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>делой</span></a> <a href="https://zhub.link/tags/%D0%B0%D0%B2%D1%82%D0%BE%D0%BC%D0%B0%D1%82%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D1%8F" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>автоматизация</span></a> <a href="https://zhub.link/tags/devops" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>devops</span></a> <a href="https://zhub.link/tags/pipline" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>pipline</span></a></p>
Habr<p>Немодальное окно коммита в IntelliJ IDEA: шаг вперёд или спорное нововведение?</p><p>В свежих обновлениях IntelliJ IDEA разработчики JetBrains внедрили немодальное окно коммита, отказавшись от классического модального диалога. Команда Spring АйО не обошла стороной активное обсуждение среди пользователей, которые разделились на два лагеря: одни приветствуют нововведение, другие считают его неудобным. Разберёмся, какие плюсы и минусы выявили пользователи и что по этому поводу думают представители JetBrains.</p><p><a href="https://habr.com/ru/companies/spring_aio/articles/889682/" rel="nofollow noopener noreferrer" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">habr.com/ru/companies/spring_a</span><span class="invisible">io/articles/889682/</span></a></p><p><a href="https://zhub.link/tags/java" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>java</span></a> <a href="https://zhub.link/tags/kotlin" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>kotlin</span></a> <a href="https://zhub.link/tags/ide" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>ide</span></a> <a href="https://zhub.link/tags/git" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>git</span></a> <a href="https://zhub.link/tags/github" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>github</span></a> <a href="https://zhub.link/tags/spring" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>spring</span></a> <a href="https://zhub.link/tags/spring_framework" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>spring_framework</span></a> <a href="https://zhub.link/tags/springboot" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>springboot</span></a> <a href="https://zhub.link/tags/spring_boot" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>spring_boot</span></a></p>
Habr<p>Рецензия на книгу “Spring и Spring Boot. Разработка облачных приложений на Java”</p><p>Spring и Spring Boot — это фундаментальные технологии для современных Java-разработчиков. С их помощью создаются сложные и гибкие корпоративные приложения, при этом минимизируются рутинные задачи. Если вы действующий разработчик на Java или пока учитесь на ИТ-курсах / в ВУЗе и только планируете им стать, знание Spring будет “must have” скиллом. Ведь практически все новые проекты ведутся с его использованием. Более того, Spring Boot существенно упрощает работу с Spring Framework, автоматизируя настройку и позволяя разработчикам сосредоточиться на логике приложения.</p><p><a href="https://habr.com/ru/companies/ssp-soft/articles/888090/" rel="nofollow noopener noreferrer" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">habr.com/ru/companies/ssp-soft</span><span class="invisible">/articles/888090/</span></a></p><p><a href="https://zhub.link/tags/%D1%80%D0%B0%D0%B7%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%BA%D0%B0_%D0%BD%D0%B0_Spring" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>разработка_на_Spring</span></a> <a href="https://zhub.link/tags/spring" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>spring</span></a> <a href="https://zhub.link/tags/spring_boot" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>spring_boot</span></a> <a href="https://zhub.link/tags/spring_framework" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>spring_framework</span></a> <a href="https://zhub.link/tags/springboot" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>springboot</span></a> <a href="https://zhub.link/tags/spring_mvc" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>spring_mvc</span></a> <a href="https://zhub.link/tags/spring_cloud" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>spring_cloud</span></a> <a href="https://zhub.link/tags/spring_security" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>spring_security</span></a> <a href="https://zhub.link/tags/%D0%BA%D0%BD%D0%B8%D0%B3%D0%B0_spring" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>книга_spring</span></a></p>
Habr<p>Spring Now 2025 – Главная конференция про Spring на русском языке</p><p>6 марта 2025 года состоится бесплатная онлайн-конференция Spring Now 2025 ! В ней примут участие не только эксперты сообщества Spring АйО, но и приглашенные лидеры индустрии. Предлагаем более подробно ознакомиться с программой мероприятия и спикеров конференции. Зарегистрироваться на мероприятие можно по ссылке .</p><p><a href="https://habr.com/ru/companies/spring_aio/articles/886906/" rel="nofollow noopener noreferrer" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">habr.com/ru/companies/spring_a</span><span class="invisible">io/articles/886906/</span></a></p><p><a href="https://zhub.link/tags/java" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>java</span></a> <a href="https://zhub.link/tags/kotlin" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>kotlin</span></a> <a href="https://zhub.link/tags/spring" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>spring</span></a> <a href="https://zhub.link/tags/spring_boot" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>spring_boot</span></a> <a href="https://zhub.link/tags/spring_framework" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>spring_framework</span></a> <a href="https://zhub.link/tags/events" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>events</span></a></p>
Habr<p>[Перевод] За каким чертом нам SpringExtension?</p><p>Новый перевод от команды Spring АйО расскажет вам, что такое SpringExtension , как правильно пользоваться этим расширением и когда его надо (или не надо) регистрировать вручную.</p><p><a href="https://habr.com/ru/companies/spring_aio/articles/886700/" rel="nofollow noopener noreferrer" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">habr.com/ru/companies/spring_a</span><span class="invisible">io/articles/886700/</span></a></p><p><a href="https://zhub.link/tags/spring" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>spring</span></a> <a href="https://zhub.link/tags/springextension" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>springextension</span></a> <a href="https://zhub.link/tags/java" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>java</span></a> <a href="https://zhub.link/tags/kotlin" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>kotlin</span></a> <a href="https://zhub.link/tags/JUnit" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>JUnit</span></a> <a href="https://zhub.link/tags/spring_boot" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>spring_boot</span></a></p>
Habr<p>Spring Reactor. Эволюция сервисов. На пути к реактивности</p><p>Это статья описывает опыт миграции традиционного приложения java spring на Spring reactor стек. О специфике разрабатываемой информационной системы, уже подробно рассказывал . Кратко о системе - смешанная сервисно-микросервисная архитектура. Чтобы получить бизнес результат, требуется вызвать микросервис, который вызывает сервис, который вызывает набор микросервисов для формирования ценностного набора данных. Получается цепочка вызовов. Сервисы и микросервисы разрабатывались на традиционном технологическом стеке, без использования реактивного подхода. Мое знакомство с реактивным подходом произошло в 2022 году. Плюсы и минусы я осознавал, как мог. В рамках разрабатываемой системы мне было сложно найти ему точку применения. Тогда сложилось понимание, что в существующих рамках реактивный подход не даст возможности эволюционных изменений. Если его применять, то применять ко всему и сразу, как постулирует реактивный манифест . Даешь революцию! Это было заблуждение. Его я не смог разрушить, даже изучая документацию и статьи. Чего-то релевантного моей ситуации в открытых источниках я найти не мог. Этой статьей постараюсь предложить путь и убедить сомневающихся, что долго раздумывать не стоит. Делайте смелый шаг на пути к реактивному стеку.</p><p><a href="https://habr.com/ru/companies/alfastrah/articles/883936/" rel="nofollow noopener noreferrer" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">habr.com/ru/companies/alfastra</span><span class="invisible">h/articles/883936/</span></a></p><p><a href="https://zhub.link/tags/spring_boot" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>spring_boot</span></a> <a href="https://zhub.link/tags/webflux" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>webflux</span></a> <a href="https://zhub.link/tags/tomcat" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>tomcat</span></a> <a href="https://zhub.link/tags/asynchronous" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>asynchronous</span></a> <a href="https://zhub.link/tags/nio" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>nio</span></a> <a href="https://zhub.link/tags/netty" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>netty</span></a> <a href="https://zhub.link/tags/reactor" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>reactor</span></a> <a href="https://zhub.link/tags/redis" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>redis</span></a> <a href="https://zhub.link/tags/performance" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>performance</span></a> <a href="https://zhub.link/tags/feign" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>feign</span></a></p>
Habr<p>Как не платить 199 рублей/неделю за hh Pro, и при этом найти работу джуну без проблем и откликов — Java выручит</p><p>В современном мире поиск работы может быть сложной и утомительной задачей. Особенно это касается начинающих специалистов, которые только начинают свой путь в профессии. В условиях жёсткой конкуренции и большого количества предложений от работодателей важно не только найти подходящую вакансию, но и выделиться среди других кандидатов. Именно поэтому я рад представить вам прикольного бота на Java, которая поможет вам в поиске работы джуну, не тратя при этом 199 рублей каждую неделю за hh Pro. Оно базируется на API самого хедхантера, поэтому всё легально, и не требует установки Google Chrome и Selenium на сервер.</p><p><a href="https://habr.com/ru/articles/882786/" rel="nofollow noopener noreferrer" translate="no" target="_blank"><span class="invisible">https://</span><span class="">habr.com/ru/articles/882786/</span><span class="invisible"></span></a></p><p><a href="https://zhub.link/tags/java" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>java</span></a> <a href="https://zhub.link/tags/spring" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>spring</span></a> <a href="https://zhub.link/tags/spring_boot" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>spring_boot</span></a> <a href="https://zhub.link/tags/%D0%BF%D0%BE%D0%B8%D1%81%D0%BA_%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D1%8B" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>поиск_работы</span></a> <a href="https://zhub.link/tags/headhunter" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>headhunter</span></a> <a href="https://zhub.link/tags/hhru" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>hhru</span></a> <a href="https://zhub.link/tags/hh" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>hh</span></a></p>
Habr<p>Альтернатива Keycloak: как настроить SSO в Authentik</p><p>Привет, Хабр! Не так давно передо мной встала задача настроить единый вход (SSO) в наше приложение, и так исторически сложилось, что в компании для этого используют open‑source‑провайдер аутентификации authentik . Первым делом я, конечно, полез в официальную документацию провайдера, но, к сожалению, не нашел там каких‑то подробных гайдов или туториалов по настройке. Дальше я, само собой, решил погуглить — нашел статьи по запуску authentik , а вот более‑менее подробного туториала, как все это заставить работать, используя наш стек (Java, Spring Boot), не оказалось. Поэтому я решил сделать его сам. В статье разберем шаги для простейшей настройки authentik и запустим его в связке с Spring Boot приложением.</p><p><a href="https://habr.com/ru/articles/878802/" rel="nofollow noopener noreferrer" translate="no" target="_blank"><span class="invisible">https://</span><span class="">habr.com/ru/articles/878802/</span><span class="invisible"></span></a></p><p><a href="https://zhub.link/tags/Java" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>Java</span></a> <a href="https://zhub.link/tags/spring_boot" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>spring_boot</span></a> <a href="https://zhub.link/tags/sso" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>sso</span></a> <a href="https://zhub.link/tags/authentik" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>authentik</span></a> <a href="https://zhub.link/tags/spring_security" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>spring_security</span></a> <a href="https://zhub.link/tags/keycloak" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>keycloak</span></a></p>
Habr<p>[Перевод] Разработка эффективных агентов с помощью Spring AI (Часть 1)</p><p>Команда Spring АйО перевела статью, в которой рассказывается про разработку эффективных агентов с помощью Spring AI. Исследование Anthropic "Building effective agents" подчеркивает важность простоты и модульности в разработке LLM-агентов. В статье рассматривается, как эти принципы реализуются в Spring AI через пять ключевых паттернов: Chain Workflow, Parallelization Workflow, Routing Workflow, Orchestrator-Workers и Evaluator-Optimizer.</p><p><a href="https://habr.com/ru/companies/spring_aio/articles/877196/" rel="nofollow noopener noreferrer" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">habr.com/ru/companies/spring_a</span><span class="invisible">io/articles/877196/</span></a></p><p><a href="https://zhub.link/tags/java" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>java</span></a> <a href="https://zhub.link/tags/kotlin" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>kotlin</span></a> <a href="https://zhub.link/tags/ai" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>ai</span></a> <a href="https://zhub.link/tags/spring" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>spring</span></a> <a href="https://zhub.link/tags/spring_boot" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>spring_boot</span></a> <a href="https://zhub.link/tags/spring_framework" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>spring_framework</span></a> <a href="https://zhub.link/tags/spring_ai" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>spring_ai</span></a></p>
Habr<p>Amplicode Frontend — фуллстек на час: создай админку для своего Spring-приложения</p><p>Не часто Spring разработчикам нужно разрабатывать админки, но когда нужно… Встает вопрос, какую технологию для этого выбрать. Неплохим решением может стать фреймворк Vaadin, или платформа Jmix, которую тоже разрабатывает наша компания. Языковая преемственность и возможность писать фронтенд код на бекенде очень подкупают, однако, эти технологии не лишены определенных проблем. В частности, глубокая кастомизация потребует серьезного погружения в технологию, что создает определенные риски для проекта. Возможно, есть какая-то альтернатива с использованием более популярных фронтенд технологий?</p><p><a href="https://habr.com/ru/companies/haulmont/articles/876156/" rel="nofollow noopener noreferrer" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">habr.com/ru/companies/haulmont</span><span class="invisible">/articles/876156/</span></a></p><p><a href="https://zhub.link/tags/java" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>java</span></a> <a href="https://zhub.link/tags/amplicode" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>amplicode</span></a> <a href="https://zhub.link/tags/reactadmin" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>reactadmin</span></a> <a href="https://zhub.link/tags/backoffice" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>backoffice</span></a> <a href="https://zhub.link/tags/spring" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>spring</span></a> <a href="https://zhub.link/tags/spring_boot" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>spring_boot</span></a></p>