Как настроить JPA и Hibernate в Spring Petclinic с помощью Hypersistence Optimizer:
https://vladmihalcea.com/spring-petclinic-hypersistence-optimizer/
👉 Java Portal
https://vladmihalcea.com/spring-petclinic-hypersistence-optimizer/
Please open Telegram to view this post
VIEW IN TELEGRAM
❤3👀1
Типы классов в Java:
1. Concrete Class — обычный класс с полной реализацией методов.
2. Abstract Class — нельзя создать напрямую через
3. Final Class — нельзя наследовать.
4. Static Nested Class — статический вложенный класс внутри другого класса.
5. Inner Class — нестатический класс внутри другого класса.
6. Local Class — класс, объявленный внутри метода или другого блока.
7. Anonymous Class — класс без имени, обычно используется для одноразовой реализации.
8. Singleton Class — класс, спроектированный так, чтобы существовал только один его экземпляр.
9. POJO — простой Java-класс без специальных требований к наследованию или фреймворкам.
10. Record Class — компактная форма класса для хранения данных; появилась как предварительная возможность в Java 14.
11. Enum Class — класс, представляющий фиксированный набор констант.
👉 Java Portal
1. Concrete Class — обычный класс с полной реализацией методов.
2. Abstract Class — нельзя создать напрямую через
new; может содержать абстрактные методы.3. Final Class — нельзя наследовать.
4. Static Nested Class — статический вложенный класс внутри другого класса.
5. Inner Class — нестатический класс внутри другого класса.
6. Local Class — класс, объявленный внутри метода или другого блока.
7. Anonymous Class — класс без имени, обычно используется для одноразовой реализации.
8. Singleton Class — класс, спроектированный так, чтобы существовал только один его экземпляр.
9. POJO — простой Java-класс без специальных требований к наследованию или фреймворкам.
10. Record Class — компактная форма класса для хранения данных; появилась как предварительная возможность в Java 14.
11. Enum Class — класс, представляющий фиксированный набор констант.
Please open Telegram to view this post
VIEW IN TELEGRAM
Telegram
Java Portal | Программирование
Присоединяйтесь к нашему каналу и погрузитесь в мир для Java-разработчика
Связь: @devmangx
РКН: https://clck.ru/3H4WUg
Связь: @devmangx
РКН: https://clck.ru/3H4WUg
👀2
90% PostgreSQL в 2026 году сводится к этим 10 вещам. Всё остальное — в основном споры об расширениях.
1. MVCC + VACUUM
Обновления создают мёртвые строки. Если autovacuum настроен плохо, таблицы и индексы раздуваются, а задержки постепенно растут неделями.
2. Индексы под реальные сценарии запросов
Порядок колонок в составных индексах важен. Нужно понимать частичные и покрывающие индексы, а также почему ORM иногда незаметно приводит к полному сканированию таблицы.
3. Блокировки и DDL
4. Уровни изоляции и аномалии
5. Управление соединениями
Слишком много соединений убивает CPU и память. Нужны PgBouncer, адекватные размеры пулов и контроль долгих транзакций в состоянии
6. WAL, checkpoints и репликация
Объём WAL напрямую влияет на ввод-вывод. Плохие настройки checkpoints вызывают скачки задержек, а отставание реплик ломает чтение с реплик и делает переключение при сбое рискованным.
7. Основы планировщика запросов
8. Наблюдаемость, привязанная к реальным сбоям
Следите за p95 задержкой, ожиданием блокировок, временными файлами, попаданиями в кэш, отставанием autovacuum и реплик. Добавьте журнал медленных запросов с нормальными порогами.
9. Резервные копии и проверка восстановления
Базовые бэкапы плюс архивирование WAL — минимум. Главная ошибка — никогда не проверять восстановление и уже во время аварии выяснить, что не хватает ролей, расширений или восстановление занимает слишком долго.
10. Безопасность и права
Минимально необходимые права, отдельные владельцы объектов, никакого
👉 Java Portal
1. MVCC + VACUUM
Обновления создают мёртвые строки. Если autovacuum настроен плохо, таблицы и индексы раздуваются, а задержки постепенно растут неделями.
2. Индексы под реальные сценарии запросов
Порядок колонок в составных индексах важен. Нужно понимать частичные и покрывающие индексы, а также почему ORM иногда незаметно приводит к полному сканированию таблицы.
3. Блокировки и DDL
ALTER TABLE может заблокировать запись. Важно понимать режимы блокировок, очереди и безопасные приёмы вроде CREATE INDEX CONCURRENTLY и обновления данных небольшими партиями.4. Уровни изоляции и аномалии
Read Committed, Repeatable Read, Serializable. Пропавшие или дублирующиеся строки часто нужно разбирать через конкурентные транзакции, а не искать проблему только в коде.5. Управление соединениями
Слишком много соединений убивает CPU и память. Нужны PgBouncer, адекватные размеры пулов и контроль долгих транзакций в состоянии
idle in transaction.6. WAL, checkpoints и репликация
Объём WAL напрямую влияет на ввод-вывод. Плохие настройки checkpoints вызывают скачки задержек, а отставание реплик ломает чтение с реплик и делает переключение при сбое рискованным.
7. Основы планировщика запросов
EXPLAIN (ANALYZE, BUFFERS) — ваш отладчик. Нужно понимать оценки количества строк, типы JOIN и когда требуется ANALYZE или расширенная статистика.8. Наблюдаемость, привязанная к реальным сбоям
Следите за p95 задержкой, ожиданием блокировок, временными файлами, попаданиями в кэш, отставанием autovacuum и реплик. Добавьте журнал медленных запросов с нормальными порогами.
9. Резервные копии и проверка восстановления
Базовые бэкапы плюс архивирование WAL — минимум. Главная ошибка — никогда не проверять восстановление и уже во время аварии выяснить, что не хватает ролей, расширений или восстановление занимает слишком долго.
10. Безопасность и права
Минимально необходимые права, отдельные владельцы объектов, никакого
superuser у приложения, регулярная смена учётных данных, ограничение сетевого доступа и закрытая на запись схема public в production.Please open Telegram to view this post
VIEW IN TELEGRAM
👀1
Ещё один отличный плейлист по структурам данных и алгоритмам от pmavrin.
https://youtube.com/playlist?list=PLrS21S1jm43igE57Ye_edwds_iL7ZOAG4&si=4mS5lXn3uxI-V2LM
👉 Java Portal
https://youtube.com/playlist?list=PLrS21S1jm43igE57Ye_edwds_iL7ZOAG4&si=4mS5lXn3uxI-V2LM
Please open Telegram to view this post
VIEW IN TELEGRAM
👀3
Предсказание ветвлений всплывает снова и снова, потому что его влияние на производительность действительно огромное. Эту тему стоит понимать глубже.
У BitLemonSw как раз вышло новое видео о том, как работает предсказание ветвлений в современных процессорах.
Суть простая. В коде постоянно встречаются ветвления: циклы,
Проблема в том, что процессоры работают конвейерно и не могут каждый раз ждать, пока станет известно, по какой ветке пойдёт выполнение. Иначе это сильно тормозило бы процессор.
Поэтому процессор заранее угадывает результат ветвления и продолжает загружать инструкции по предполагаемому пути. Если прогноз оказался верным — всё быстро. Если нет — часть работы приходится выбросить и начать заново.
https://youtu.be/UbDIoNY9E0w
👉 Java Portal
У BitLemonSw как раз вышло новое видео о том, как работает предсказание ветвлений в современных процессорах.
Суть простая. В коде постоянно встречаются ветвления: циклы,
if, switch/case, вызовы функций и возвраты.Проблема в том, что процессоры работают конвейерно и не могут каждый раз ждать, пока станет известно, по какой ветке пойдёт выполнение. Иначе это сильно тормозило бы процессор.
Поэтому процессор заранее угадывает результат ветвления и продолжает загружать инструкции по предполагаемому пути. Если прогноз оказался верным — всё быстро. Если нет — часть работы приходится выбросить и начать заново.
https://youtu.be/UbDIoNY9E0w
Please open Telegram to view this post
VIEW IN TELEGRAM
❤4
Сопоставление с образцом для
Старый подход: сначала
Новый подход:
При этом d существует только там, где условие проверки истинно.
#Java #PatternMatching
👉 Java Portal
instanceof: переменную можно объявить прямо в проверке.Старый подход: сначала
instanceof, затем отдельное приведение типа.Новый подход:
if (obj instanceof Dog d) — переменная d сразу готова к использованию.При этом d существует только там, где условие проверки истинно.
#Java #PatternMatching
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥4
Интеграционное тестирование базы данных с помощью Testcontainers
https://vladmihalcea.com/testcontainers-database-integration-testing/
👉 Java Portal
https://vladmihalcea.com/testcontainers-database-integration-testing/
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4
Переименование поля в API изнутри кажется безобидным. Снаружи оно может положить каждый дашборд, который рассчитывал на старое имя.
Любое изменение API попадает в одну из двух категорий, и от этого зависит всё.
Если изменение ломающее, нужно поднимать версию: удаление или переименование полей, добавление обязательных параметров или фундаментальное изменение поведения эндпоинта.
Безопасные изменения можно выпускать без новой версии: добавлять необязательные поля, новые эндпоинты или просто ускорять работу.
Большая часть боли появляется из-за двух противоположных ошибок. Не версионировать вообще — и каждый релиз превращается для пользователей в лотерею. Версионировать всё подряд — и в итоге вы поддерживаете пять версий, а разработчики уже не понимают, какую использовать.
Несколько простых правил помогают держать баланс:
— Показывайте версию явно, например
— Используйте семантическое версионирование, чтобы смена мажорной версии сразу означала необходимость изменений в клиентском коде.
— Если версия выводится из эксплуатации, говорите об этом прямо в ответе через заголовок
Версия API — это обещание о том, что не изменится.
Нарушать его нужно редко и громко. Никогда — молча.
Какую ошибку вы встречали чаще?
👉 Java Portal
Любое изменение API попадает в одну из двух категорий, и от этого зависит всё.
Если изменение ломающее, нужно поднимать версию: удаление или переименование полей, добавление обязательных параметров или фундаментальное изменение поведения эндпоинта.
Безопасные изменения можно выпускать без новой версии: добавлять необязательные поля, новые эндпоинты или просто ускорять работу.
Большая часть боли появляется из-за двух противоположных ошибок. Не версионировать вообще — и каждый релиз превращается для пользователей в лотерею. Версионировать всё подряд — и в итоге вы поддерживаете пять версий, а разработчики уже не понимают, какую использовать.
Несколько простых правил помогают держать баланс:
— Показывайте версию явно, например
/v1/ в URL, как это делают Stripe и GitHub.— Используйте семантическое версионирование, чтобы смена мажорной версии сразу означала необходимость изменений в клиентском коде.
— Если версия выводится из эксплуатации, говорите об этом прямо в ответе через заголовок
Sunset и давайте 6–12 месяцев на миграцию.Версия API — это обещание о том, что не изменится.
Нарушать его нужно редко и громко. Никогда — молча.
Какую ошибку вы встречали чаще?
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
Валидатор загрузки связей в JPA
В статье показано, как программно проверять, каким образом JPA и Hibernate загружают связанные сущности — через
Проблема особенно заметна с
Автор строит собственный валидатор поверх механизмов Hibernate Statistics и Event Listeners. Он позволяет прямо в тестах определить
→ какие связанные сущности были загружены
→ какие пришли через дополнительные SQL-запросы
→ какие были получены через
Например, можно проверить, что запрос неожиданно загрузил две
По сути, это способ ловить проблемы со стратегией загрузки и N+1 ещё на уровне тестов, до того как они попадут в продакшен.
https://vladmihalcea.com/jpa-association-fetching-validator/
👉 Java Portal
В статье показано, как программно проверять, каким образом JPA и Hibernate загружают связанные сущности — через
JOIN или отдельными дополнительными запросами.Проблема особенно заметна с
FetchType.EAGER. Например, @ManyToOne и @OneToOne используют его по умолчанию, из-за чего Hibernate может незаметно генерировать дополнительные запросы и приводить к классической проблеме N+1. Автор строит собственный валидатор поверх механизмов Hibernate Statistics и Event Listeners. Он позволяет прямо в тестах определить
→ какие связанные сущности были загружены
→ какие пришли через дополнительные SQL-запросы
→ какие были получены через
JOINНапример, можно проверить, что запрос неожиданно загрузил две
PostComment отдельными запросами и ещё один Post через JOIN. После замены запроса на JOIN FETCH валидатор подтверждает, что дополнительные SQL-запросы исчезли. По сути, это способ ловить проблемы со стратегией загрузки и N+1 ещё на уровне тестов, до того как они попадут в продакшен.
https://vladmihalcea.com/jpa-association-fetching-validator/
Please open Telegram to view this post
VIEW IN TELEGRAM
Vlad Mihalcea
JPA Association Fetching Validator - Vlad Mihalcea
Learn how to implement a JPA Association Fetching Validator that asserts if associations are fetched using joins or secondary queries.
This media is not supported in your browser
VIEW IN TELEGRAM
11 принципов разработки ПО, которые стоило понять гораздо раньше.
1. SOLID — более качественное объектно-ориентированное проектирование
2. DRY — не повторяйся
3. KISS — не усложняй
4. YAGNI — не реализуй то, что пока не нужно
5. SRP — одна ответственность
6. Open/Closed — расширяй, не ломая существующее
7. Dependency Inversion — уменьшай связанность
8. Composition — собирай систему из гибких компонентов
9. Separation of Concerns — разделяй ответственность между частями системы
10. Fail Fast — обнаруживай проблемы как можно раньше
11. Measure First — оптимизируй только то, что действительно имеет значение
👉 Java Portal
1. SOLID — более качественное объектно-ориентированное проектирование
2. DRY — не повторяйся
3. KISS — не усложняй
4. YAGNI — не реализуй то, что пока не нужно
5. SRP — одна ответственность
6. Open/Closed — расширяй, не ломая существующее
7. Dependency Inversion — уменьшай связанность
8. Composition — собирай систему из гибких компонентов
9. Separation of Concerns — разделяй ответственность между частями системы
10. Fail Fast — обнаруживай проблемы как можно раньше
11. Measure First — оптимизируй только то, что действительно имеет значение
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥4
This media is not supported in your browser
VIEW IN TELEGRAM
Не забывайте поддерживать проекты с открытым исходным кодом, которыми сами пользуетесь.
👉 Java Portal
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7
Spring Boot 4: можно объединять несколько
Каждый из них может переносить свой контекст в рабочий поток.
Spring Boot объединяет их и определяет порядок выполнения через
Типичная связка: MDC для логов + контекст безопасности для пользователя.
#SpringBoot4 #Async
👉 Java Portal
TaskDecorator для асинхронных задач.Каждый из них может переносить свой контекст в рабочий поток.
Spring Boot объединяет их и определяет порядок выполнения через
@Order.Типичная связка: MDC для логов + контекст безопасности для пользователя.
#SpringBoot4 #Async
Please open Telegram to view this post
VIEW IN TELEGRAM
На одном собеседовании по системному дизайну я использовал Kafka.
На другом — Redis.
На ещё одном — S3.
На ВСЕХ собеседованиях по системному дизайну я использовал базы данных.
Базы данных — основа любой архитектуры независимо от масштаба, стека или предметной области.
Если вы понимаете, как данные хранятся, запрашиваются, индексируются, реплицируются и партиционируются, то вы уже понимаете 70% системного дизайна.
Не отвлекайтесь на каждый новый модный компонент. Очереди, кэши и оркестраторы приходят и уходят.
А базы данных остаются.
Реляционные, NoSQL, временные ряды, векторные базы — подходы меняются, но принципы остаются теми же:
- пути чтения и записи
- индексация и кэширование
- транзакции и изоляция
- репликация и партиционирование
Разберитесь глубоко в том, как движутся данные, и вы увидите, как с ними связаны все остальные части системы.
Изучайте базы данных глубоко.
Большинство других компонентов существуют лишь для того, чтобы перемещать эти данные, защищать их или оптимизировать доступ к ним.
👉 Java Portal
На другом — Redis.
На ещё одном — S3.
На ВСЕХ собеседованиях по системному дизайну я использовал базы данных.
Базы данных — основа любой архитектуры независимо от масштаба, стека или предметной области.
Если вы понимаете, как данные хранятся, запрашиваются, индексируются, реплицируются и партиционируются, то вы уже понимаете 70% системного дизайна.
Не отвлекайтесь на каждый новый модный компонент. Очереди, кэши и оркестраторы приходят и уходят.
А базы данных остаются.
Реляционные, NoSQL, временные ряды, векторные базы — подходы меняются, но принципы остаются теми же:
- пути чтения и записи
- индексация и кэширование
- транзакции и изоляция
- репликация и партиционирование
Разберитесь глубоко в том, как движутся данные, и вы увидите, как с ними связаны все остальные части системы.
Изучайте базы данных глубоко.
Большинство других компонентов существуют лишь для того, чтобы перемещать эти данные, защищать их или оптимизировать доступ к ним.
Please open Telegram to view this post
VIEW IN TELEGRAM
[+ разбор 50 сложных вопросов в подарок ]
19 августа (уже завтра!) в 19:00 по мск приходи онлайн, чтобы посмотреть на настоящее интервью на Middle Java-разработчика!
Собеседование проведёт Сергей Чамкин - старший разработчик из Uzum, ex-WildBerries
Как это будет:
📂 Сергей задаст разработчику-добровольцу вопросы и задачи, которые могут спросить на реальном собесе
📂 После каждого ответа респондента ты услышишь подробный комментарий от ментора и поймёшь, чего на самом деле ожидает собеседующий на интервью
📂 В конце сможешь задать любой вопрос Сергею и получить на него развёрнутый ответ
Эфир проходит в рамках менторской программы от ШОРТКАТ для Java-разработчиков, которые хотят повысить свой грейд, ЗП и прокачать скиллы
Но ты можешь посмотреть его бесплатно 🔥
Только завтра, в прямом эфире!
🎁 Подарок для всех, кто зарегается на веб — файл с ОТВЕТАМИ НА 50 СЛОЖНЫХ ВОПРОСОВ с Java-собеседований 🔥
Жми на кнопку, чтобы попасть на эфир и забрать подарок ↓
@shortcut_sh_bot
Реклама.
О рекламодателе.
Please open Telegram to view this post
VIEW IN TELEGRAM
9 советов по высокой производительности при использовании MySQL с JPA и Hibernate.
https://vladmihalcea.com/9-high-performance-tips-when-using-mysql-with-jpa-and-hibernate/
👉 Java Portal
https://vladmihalcea.com/9-high-performance-tips-when-using-mysql-with-jpa-and-hibernate/
Please open Telegram to view this post
VIEW IN TELEGRAM
Vlad Mihalcea
9 High-Performance Tips when using MySQL with JPA and Hibernate - Vlad Mihalcea
Introduction Although there is an SQL Standard, every relational database is ultimately unique, and you need to adjust your data access layer so that you get the most out of the relational database in use. In this article, we are going to see what you can…
Импортируете CSV в Postgres? Используйте
Это быстро, потому что данные передаются одной массовой командой с минимальным количеством обменов по протоколу, одним разбором и планированием, прямым преобразованием строк и без накладных расходов на отдельный запрос для каждой строки.
Что важно знать:
Включает стандартный разбор CSV: запятые, поля в кавычках и экранированные кавычки.
Список целевых столбцов
Порядок столбцов в CSV редко совпадает с таблицей. Всегда указывайте целевые столбцы в том порядке, в котором они идут в файле. Postgres сопоставляет их по позиции, а не по имени из заголовка CSV.
Пропускает строки заголовка. Обычный
Позволяет сопоставить специальную строку в CSV, например
Неуказанные столбцы
Столбцы таблицы, которые не указаны в списке целевых столбцов, автоматически получают
Лишние столбцы в CSV
Postgres выдаст ошибку, если в CSV больше полей, чем указано целевых столбцов. Обрежьте файл или сначала загрузите данные в более широкую промежуточную таблицу.
NULL-значения
В формате
Обработка ошибок через
Исторически
•
•
•
👉 Java Portal
COPY или \copy.Это быстро, потому что данные передаются одной массовой командой с минимальным количеством обменов по протоколу, одним разбором и планированием, прямым преобразованием строк и без накладных расходов на отдельный запрос для каждой строки.
Что важно знать:
FORMAT csvВключает стандартный разбор CSV: запятые, поля в кавычках и экранированные кавычки.
Список целевых столбцов
Порядок столбцов в CSV редко совпадает с таблицей. Всегда указывайте целевые столбцы в том порядке, в котором они идут в файле. Postgres сопоставляет их по позиции, а не по имени из заголовка CSV.
HEADER / HEADER nПропускает строки заголовка. Обычный
HEADER пропускает первую строку. Ожидается, что Postgres 19 позволит передавать число, например HEADER 2, чтобы пропускать несколько начальных строк.DEFAULT 'string'Позволяет сопоставить специальную строку в CSV, например
'__DEFAULT__', с выражением DEFAULT соответствующего столбца.Неуказанные столбцы
Столбцы таблицы, которые не указаны в списке целевых столбцов, автоматически получают
DEFAULT или NULL.Лишние столбцы в CSV
Postgres выдаст ошибку, если в CSV больше полей, чем указано целевых столбцов. Обрежьте файл или сначала загрузите данные в более широкую промежуточную таблицу.
NULL-значения
В формате
csv стандартным представлением NULL является пустая строка без кавычек. Это можно изменить через NULL 'string'.Обработка ошибок через
ON_ERROR и REJECT_LIMITИсторически
COPY останавливался на первой ошибке преобразования. В новых версиях появились:•
ON_ERROR ignore в Postgres 17 — пропускает некорректные строки и сообщает их количество•
REJECT_LIMIT n в Postgres 18 — задаёт максимальное число плохих строк при ON_ERROR ignore, после которого импорт будет остановлен•
ON_ERROR set_null в Postgres 19 — заменяет некорректное поле на NULL вместо того, чтобы отбрасывать всю строкуPlease open Telegram to view this post
VIEW IN TELEGRAM
👍3
Java: поверхностное клонирование копирует только сам объект, а вложенные объекты остаются общими.
Глубокое клонирование дополнительно копирует и вложенные поля.
Если ссылки остаются общими, изменение вложенного объекта в одной копии будет видно и в другой.
#Java #SoftwareEngineering
👉 Java Portal
super.clone() сам по себе создаёт поверхностную копию.Глубокое клонирование дополнительно копирует и вложенные поля.
Если ссылки остаются общими, изменение вложенного объекта в одной копии будет видно и в другой.
#Java #SoftwareEngineering
Please open Telegram to view this post
VIEW IN TELEGRAM
❤3
Похоже, это один из самых полных справочников по самостоятельному хостингу.
Огромный открытый гайд со всем, что нужно для старта и дальнейшего изучения self-hosting:
Docker, Kubernetes, базы данных, LLM, сети, Raspberry Pi, Home Assistant, безопасность, программирование и ещё куча всего.
Если давно хотели научиться запускать собственный софт вместо того, чтобы зависеть от SaaS-сервисов, это точно стоит сохранить.
Источник: github.com/mikeroyal/Self-Hosting-Guide
👉 Java Portal
Огромный открытый гайд со всем, что нужно для старта и дальнейшего изучения self-hosting:
Docker, Kubernetes, базы данных, LLM, сети, Raspberry Pi, Home Assistant, безопасность, программирование и ещё куча всего.
Если давно хотели научиться запускать собственный софт вместо того, чтобы зависеть от SaaS-сервисов, это точно стоит сохранить.
Источник: github.com/mikeroyal/Self-Hosting-Guide
Please open Telegram to view this post
VIEW IN TELEGRAM
GitHub
GitHub - mikeroyal/Self-Hosting-Guide: Self-Hosting Guide. Learn all about locally hosting (on premises & private web servers)…
Self-Hosting Guide. Learn all about locally hosting (on premises & private web servers) and managing software applications by yourself or your organization. Including Cloud, LLMs, WireGuar...
Разработчику стоит знать основные концепции системного дизайна.
Это помогает показать потенциальным работодателям, что вы умеете превращать требования к архитектуре в готовый к продакшену код.
В курсе разбираются архитектура приложений, проектирование API, кэширование, сети, базы данных и многое другое.
https://freecodecamp.org/news/learn-system-design-principles/
👉 Java Portal
Это помогает показать потенциальным работодателям, что вы умеете превращать требования к архитектуре в готовый к продакшену код.
В курсе разбираются архитектура приложений, проектирование API, кэширование, сети, базы данных и многое другое.
https://freecodecamp.org/news/learn-system-design-principles/
Please open Telegram to view this post
VIEW IN TELEGRAM
freeCodeCamp.org
Learn System Design Principles and Prepare for an Job Interview
Mastering system design is important for anyone who wants to build scalable and reliable applications. System design includes a range of topics from basic computer architecture to complex networking concepts, each playing an important role in creatin...
🔥2
🚀 Spring Boot 4:
✅ Теперь метаданные можно генерировать даже для типов, которые находятся в другом модуле.
#SpringBoot4 #Config
👉 Java Portal
@ConfigurationPropertiesSource для внешних типов.✅ Теперь метаданные можно генерировать даже для типов, которые находятся в другом модуле.
#SpringBoot4 #Config
Please open Telegram to view this post
VIEW IN TELEGRAM