Рубрика «spring»

Недавно я разбирал истории CVE, связанные с завершением поддержки Tomcat 8.5, и решил посмотреть на Spring Boot 3.5. Я задался тем же вопросом применительно к Spring Boot: что происходит с уровнем защищённости приложения, когда используемая версия достигает End Of Life (EOL)?

Слепая зона CVE

Обычно жизненный цикл уязвимости представляют так:

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

  2. О проблеме сообщают разработчикам проекта.

  3. Уязвимости присваивают идентификатор CVE и оценку критичности.

  4. Разработчики выпускают исправление.

  5. Читать полностью »

Привет! Это моя первая статья на Хабре, поэтому если будут какие‑то недочёты, не судите строго)

Не так давно я разрабатывал микросервисное приложение для анализа предпочтений пользователей на основе их книг. Оно должно было обрабатывать тысячи событий в день, чтобы рекомендовать пользователям новые произведения. И в один момент я столкнулся с классической болью распределенных систем: если брокер сообщений (например, Kafka) был временно недоступен, мои события терялись навсегда.

Читать полностью »

Введение

Доброго времени суток, друзья!

В данной статье я постараюсь довольно кратко и подробно описать то, как работает spring security изнутри. Статья будет вводная, и будет содержать в основном теорию.

Собственно. Что же такое этот Spring Security?

Spring Security — это главный фреймворк который предоставляет механизмы построения систем аутентификации и авторизации. Помимо этого он даёт возможность обеспечения безопасности для приложений, созданных на spring'e.

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

АутентификацияЧитать полностью »

За последние несколько лет для вызова внешних API в каждом втором (если не первом) проекте я видел одну и ту же картину:

  • RestTemplate

  • или FeignClient

Причём Feign почти всегда шёл в связке с OpenAPI: сгенерировали клиент, получили интерфейсы и не думаем о реализации. Удобно, красиво, привычно.

Но потом в Spring появился нативный декларативный HttpClient, который работает поверх RestClient / WebClient

И у меня возник вопрос: а можно ли им заменить Feign, не потеряв удобство?

Спойлер: да, можно и будет даже удобнее.

Откуда вообще взялся HttpClient

Идея, на самом деле, очень простая.

Читать полностью »

Всем привет! В этой статье рассмотрим наиболее полную реализацию паттерна Transactional Outbox, которую можно будет легко расширять и применять в продакшне. Данная статья будет полезна как для разработчиков, которые еще не встречались с данным паттерном, так и тем, кто уже применял его в своей работе.

Введение

Прежде чем перейти к определению паттерна, определим ключевых акторов:

  • Паблишер - процесс, инициирующий изменения и создающий события.

  • Консьюмер - процесс, обрабатывающий эти события.

Читать полностью »

Всем привет! Когда речь заходит о разработке высоконагруженных систем, многие предлагают: «python, сделать проще и быстрее». Но есть проблема: Скорость разработки!= скорость и качество работы сервиса. Когда мы делаем любой продукт, важны: Масштабируемость, стабильность работы под большой нагрузкой, предсказуемость поведения системы — особенно когда речь идет о тысячах одновременных пользователей, лентах новостей в реальном времени, уведомлениях и сложных связях между разными сущностями.

Именно поэтому и выбрана Java и Spring Boot как основа. Банки и видеосервисы работают именно на Java и Spring.

Читать полностью »

В данной статье рассматривается архитектура проекта, позволяющая модульным образом интегрировать инфраструктурные фреймворки, такие как Spring, Quarkus и Micronaut, без необходимости модификации ядра предметной области (domain) или внешних API.

Ссылка на исходный код: https://github.com/bifrurcated/hexagonal

Содержание:

  1. Введение

  2. Реализация domain модуля

  3. Реализация api-rest модуля

  4. Читать полностью »

Общая информация

В своей практике мы можем сталкиваться с хранением и поиском информации задаваемой в интревальном формате. Например: срок действия акций, тарифы на доставку и прочее

Информация с сайта https://promo-akcii.ru/

Информация с сайта https://promo-akcii.ru/

Задача

Читать полностью »

Привет! Я сегодня хочу разобрать одну из самых мощных, но часто неправильно понимаемых архитектурных концепций — CQRS. Если вы уже переросли уровень «просто писать CRUD» и задумываетесь о том, как строить системы, которые будут масштабироваться и оставаться производительными — эта статья для вас.

Почему CRUD иногда не работает

Давайте начнем с классики. Представьте, что вы делаете любой современный сервис — соцсеть, маркетплейс, трекер задач. У вас есть сущность Пользователь, Заказ, Пост. Стандартный подход:

Читать полностью »

Всем привет! Меня зовут Шалико, я Java-разработчик и часто создаю Telegram-ботов в своих pet-проектах.
Сегодня хочу рассказать вам про фреймворк, который я разработал, чтобы сильно упростить этот процесс.

Не спешите пролистывать статью - вам действительно может быть интересно, даже если вы не пишете Telegram-ботов каждый день.

Исходники проекта на GitHub
А ниже я расскажу, как это работает и почему вообще возникла идея фреймворка.

Зачем? Какие боли решаем?

Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js