Spring Boot совет: если хочешь, чтобы DTO спокойно переживали лишние поля в JSON от клиента и не роняли API, добавляй аннотацию
Jackson тогда просто проигнорит поля, которых нет в твоем классе, вместо того чтобы кидать
Допустим, есть DTO:
Клиент шлёт такой JSON:
Jackson скажет что-то вроде:
Исправить просто: добавляем
И всё. Лишние поля тихонько проигнорятся, API не падает.
👉 Java Portal
@JsonIgnoreProperties(ignoreUnknown = true)Jackson тогда просто проигнорит поля, которых нет в твоем классе, вместо того чтобы кидать
UnrecognizedPropertyException. Удобно, когда фронты любят прислать что-нибудь от себя.Допустим, есть DTO:
public class UserDTO {
private String name;
private int age;
// getters/setters
}Клиент шлёт такой JSON:
{
"name": "Alice",
"age": 25,
"extraField": "not expected"
}Jackson скажет что-то вроде:
UnrecognizedPropertyException: Unrecognized field "extraField"
Исправить просто: добавляем
@JsonIgnoreProperties@JsonIgnoreProperties(ignoreUnknown = true)
public class UserDTO {
private String name;
private int age;
// getters/setters
}
И всё. Лишние поля тихонько проигнорятся, API не падает.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥7👍5❤2
Айтишники не рассказывают где учатся бесплатно и эффективно
Никому не говори об этом канале!!! В сфере онлайн образования появился новый гигант «TERMINAL» — который разрушит индустрию платных IT-курсов
Бесплатный доступ:
Обучение по всем направлениям: SQL, Python, Frontend, PHP, C++, Golang, GIT, Linux, Java, кибербезопасность и др.
Если ценишь знания — подпишись: @Terminal_tg
Никому не говори об этом канале!!! В сфере онлайн образования появился новый гигант «TERMINAL» — который разрушит индустрию платных IT-курсов
Бесплатный доступ:
🔄 Практические курсы и задания🔄 Книги и статьи от профи🔄 Полезные инструменты и ресурсы🔄 IT-новости и инсайды
Обучение по всем направлениям: SQL, Python, Frontend, PHP, C++, Golang, GIT, Linux, Java, кибербезопасность и др.
Если ценишь знания — подпишись: @Terminal_tg
Please open Telegram to view this post
VIEW IN TELEGRAM
🤣6💊3👍2❤1🔥1
Исправляем ту самую ошибку на миллиарды долларов? 👀
Улучшения поддержки null-безопасности в Spring Boot 4 могут оказаться самым недооцененным нововведением предстоящего релиза.
Аннотации NonNull и Nullable теперь полноценные граждане во всем фреймворке. Spring постепенно переводит весь код на единый и последовательный подход.
Хватит гадать, вернет ли сервис null. IDE поймает потенциальный NPE уже на этапе компиляции, а не в рантайме.
То ли поправка, о которой мечтал Тони Хоар? Не полностью. Но это важный шаг к более безопасному Java-коду.
Самое приятное? Не нужно мигрировать за один заход. Можно двигаться постепенно, делая код надежнее и уверенно продвигаясь вперед.
Null-безопасность в Spring Boot 4 даст нам ту же уверенность в кодовой базе, что и тесты.👍
👉 Java Portal
Улучшения поддержки null-безопасности в Spring Boot 4 могут оказаться самым недооцененным нововведением предстоящего релиза.
Аннотации NonNull и Nullable теперь полноценные граждане во всем фреймворке. Spring постепенно переводит весь код на единый и последовательный подход.
Хватит гадать, вернет ли сервис null. IDE поймает потенциальный NPE уже на этапе компиляции, а не в рантайме.
То ли поправка, о которой мечтал Тони Хоар? Не полностью. Но это важный шаг к более безопасному Java-коду.
Самое приятное? Не нужно мигрировать за один заход. Можно двигаться постепенно, делая код надежнее и уверенно продвигаясь вперед.
Null-безопасность в Spring Boot 4 даст нам ту же уверенность в кодовой базе, что и тесты.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6
Подсказка по Spring Boot 4: коллекции с nullable-элементами (List<Nullable String>) помогают ловить NullPointerException на этапе компиляции вместо рантайма. Больше никаких сюрпризов при обработке API-ответов, где могут прилетать null.
👉 Java Portal
Please open Telegram to view this post
VIEW IN TELEGRAM
❤6
Недавно в регионе US-EAST-1 у AWS были сбои.
Как бы ты спроектировал деплой микросервиса и инфраструктуру вокруг, чтобы пережить падение одной инстансы, сбой базы данных или даже отказ целого дата-центра ?
Когда делаем систему с высокой доступностью, нужно сразу исходить из того, что все рано или поздно ломается. Поэтому закладываем автоматическое восстановление на каждом уровне.
Держим несколько одинаковых инстансов сервиса за нагрузочным балансировщиком. Деплоим их в разные зоны. Если одна инстанса упала, балансировщик просто перестает слать ей трафик и направляет запросы на оставшиеся живые экземпляры.
Для базы данных используем репликацию. Есть primary и хотя бы одна hot-standby реплика в другой физической зоне. Все записи в primary сразу копируются на standby.
Практикуем Chaos Engineering: намеренно ломаем часть продовой инфраструктуры, например, убиваем сервисы или добавляем сетевые задержки. Смотрим, что автоматический failover реально срабатывает как задумано, а не только на бумаге.
Please open Telegram to view this post
VIEW IN TELEGRAM