getDepartmentDeptName()
получает deptName
из связанной сущности Department
Please open Telegram to view this post
VIEW IN TELEGRAM
Понятие ошибки и исключения в Java
⏩ Error в Java — это серьёзная проблема, с которой программа не должна пытаться справляться. Обычно Error выбрасывается виртуальной машиной Java (JVM) и сигнализирует о неполадках, находящихся вне контроля программы, например, утечка памяти или переполнение стека
⏩ Exception в Java — это ситуация, которую программа может предусмотреть и обработать. Это ошибки, от которых можно восстановиться во время выполнения, используя конструкции обработки исключений, такие как
👉 Java Portal
try-catch
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Миграция от монолита к микросервисам в Spring Boot Java
⏩ Определите границы контекста —> используйте Domain-Driven Design (DDD) для логического разделения модулей
⏩ Модульность внутри приложения —> применяйте модули и пакеты Spring для изоляции сервисов
⏩ Вынос в микросервисы —> начинайте перенос модулей (например, пользователь, заказы) в отдельные сервисы
⏩ Внедрение API Gateway и сервис-дискавери —> используйте Spring Cloud Gateway и Eureka/Nacos
⏩ Безопасность взаимодействия —> добавьте уровни безопасности OAuth2/JWT
⏩ CI/CD пайплайн —> автоматизируйте сборку, тестирование и деплой с помощью Jenkins/GitHub Actions
👉 Java Portal
Please open Telegram to view this post
VIEW IN TELEGRAM
Уровни доступа при наследовании
Подкласс:
private —> Не видно в подклассе
default —> Видно, если в одном пакете
protected —> Видно в подклассе
public —> Видно в подклассе
👉 Java Portal
Подкласс:
private —> Не видно в подклассе
default —> Видно, если в одном пакете
protected —> Видно в подклассе
public —> Видно в подклассе
Please open Telegram to view this post
VIEW IN TELEGRAM
Нужен быстрый генератор OTP в Java?
Вот сниппет, который создаёт случайный 4-значный код с помощью
Идеально подойдёт для логина, регистрации или проверки пользователя
👉 Java Portal
Вот сниппет, который создаёт случайный 4-значный код с помощью
Random
и String.format()
Идеально подойдёт для логина, регистрации или проверки пользователя
Please open Telegram to view this post
VIEW IN TELEGRAM
Мягкое завершение работы Spring Boot приложения
1. Прекратить приём новых запросов
—> Приложение прекращает принимать новые входящие запросы.
2. Дать текущим запросам завершиться
—> Текущим запросам разрешается завершиться
3. Завершить внутренние задачи
—> Внутренние задачи, такие как запланированные задания, завершаются.
4. Оповестить другие сервисы
—> Приложение уведомляет другие сервисы о подготовке к завершению работы.
👉 Java Portal
1. Прекратить приём новых запросов
—> Приложение прекращает принимать новые входящие запросы.
2. Дать текущим запросам завершиться
—> Текущим запросам разрешается завершиться
3. Завершить внутренние задачи
—> Внутренние задачи, такие как запланированные задания, завершаются.
4. Оповестить другие сервисы
—> Приложение уведомляет другие сервисы о подготовке к завершению работы.
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
Быстрее находите и устраняйте ошибки в коде с IntelliJIDEA 👩💻
Используйте
Куда бы ни был установлен курсор, IDE сразу перенесёт вас к проблеме с полезными объяснениями и предложениями по быстрому исправлению
👉 Java Portal
Используйте
⇧F2
(macOS) / Shift + F2
(Windows, Linux), чтобы переходить между проблемами.Куда бы ни был установлен курсор, IDE сразу перенесёт вас к проблеме с полезными объяснениями и предложениями по быстрому исправлению
Please open Telegram to view this post
VIEW IN TELEGRAM
Spring_Annotations_Final.pdf
37.5 KB
25 аннотаций Spring Boot, которые вы должны знать
Сохраняй, чтобы не искать по тысячу раз❤️
👉 Java Portal
Сохраняй, чтобы не искать по тысячу раз
Please open Telegram to view this post
VIEW IN TELEGRAM
Java_Hibernate_Interview_Questions_Linked.pdf
24.2 KB
Вопросы для собеседования по Java Hibernate с однострочными ответами
Ставь лайк если полезно👍
👉 Java Portal
Ставь лайк если полезно
Please open Telegram to view this post
VIEW IN TELEGRAM
Скидываю вам список чекеров и плагинов для Error Prone — забрать
Error Prone — это инструмент от Google для анализа Java-кода, который встраивается в компилятор (javac) и находит потенциальные ошибки ещё на этапе компиляции⌨️
Подойдет для тех, кто хочет усилить Error Prone и сделать код чище, безопаснее и стабильнее
👉 Java Portal
Error Prone — это инструмент от Google для анализа Java-кода, который встраивается в компилятор (javac) и находит потенциальные ошибки ещё на этапе компиляции
Подойдет для тех, кто хочет усилить Error Prone и сделать код чище, безопаснее и стабильнее
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Лучшие советы по API REST
Скачать PDF на русском — здесь
Сохрани себе для быстрой шпаргалки
🥁 🥁 🥁
👉 Java Portal
Скачать PDF на русском — здесь
Сохрани себе для быстрой шпаргалки
Please open Telegram to view this post
VIEW IN TELEGRAM
Осталось всего 2 дня, чтобы прокачать асинхронный код на Scala Future 📢
15 апреля в 18:30 пройдёт открытый вебинар с Валентином Шилиным — старшим программистом и аналитиком данных Deutsche Telekom IT GmbH, экспертом по большим данным и преподавателем курсов по Scala и Apache Spark. Он расскажет:
— как избегать типичных ошибок (блокировки и потерю контекста)
— как комбинировать асинхронные операции (Future.sequence, traverse, for-comprehensions)
— как ускорить и упростить написание кода на Scala
❗️ Если вы хотите перейти с Java на Scala или уже используете Play Framework, Akka или Spark — на вебинаре вы узнаете, как грамотно писать асинхронный код и устранять «подводные камни».
Каждый участник:
— сможет задать вопросы эксперту
— получит скидку на полный курс по Scala-разработке
👉 Не упустите шанс перейти на новый уровень — регистрируйтесь, пока осталось 2 дня
https://otus.pw/h1lG/
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
15 апреля в 18:30 пройдёт открытый вебинар с Валентином Шилиным — старшим программистом и аналитиком данных Deutsche Telekom IT GmbH, экспертом по большим данным и преподавателем курсов по Scala и Apache Spark. Он расскажет:
— как избегать типичных ошибок (блокировки и потерю контекста)
— как комбинировать асинхронные операции (Future.sequence, traverse, for-comprehensions)
— как ускорить и упростить написание кода на Scala
❗️ Если вы хотите перейти с Java на Scala или уже используете Play Framework, Akka или Spark — на вебинаре вы узнаете, как грамотно писать асинхронный код и устранять «подводные камни».
Каждый участник:
— сможет задать вопросы эксперту
— получит скидку на полный курс по Scala-разработке
👉 Не упустите шанс перейти на новый уровень — регистрируйтесь, пока осталось 2 дня
https://otus.pw/h1lG/
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
Клёвый тренажёр+учебник по SQL
Тут можно потренироваться в хитрых джойнах, агрегациях и понабивать руку. Интерфейс очень приятный и позволяет потыкать схему БД, даёт подсказки как в коде, так и непосредственно по решению
В более сложные штуки (к примеру, в оконные функции) этот ресурс не лезет. Ну и запросы даже в самых сложных задачках получаются не сказать чтобы громоздкие
На сайте есть платная версия (которая позволяет смотреть авторские решения), но можно вполне обойтись и без неё
https://sql-academy.org/ru/trainer
👉 Java Portal
Тут можно потренироваться в хитрых джойнах, агрегациях и понабивать руку. Интерфейс очень приятный и позволяет потыкать схему БД, даёт подсказки как в коде, так и непосредственно по решению
В более сложные штуки (к примеру, в оконные функции) этот ресурс не лезет. Ну и запросы даже в самых сложных задачках получаются не сказать чтобы громоздкие
На сайте есть платная версия (которая позволяет смотреть авторские решения), но можно вполне обойтись и без неё
https://sql-academy.org/ru/trainer
Please open Telegram to view this post
VIEW IN TELEGRAM
Общие вопросы для собеседования по HashMap в Java 💪
Может ли HashMap содержать null-ключи и null-значения?
—> Да, один null-ключ допускается.
—> Несколько null-значений разрешены.
Потокобезопасен ли HashMap?
—>Нет, не потокобезопасен
Безопасные альтернативы:
⏩
⏩
Могут ли два разных объекта иметь одинаковый хеш-код?
—> Да. Это называется хеш-коллизия
Что вызывает
—> Изменение HashMap во время итерации (например, через
Может ли HashMap содержать два ключа с одинаковым хеш-кодом?
—> Да. HashMap обрабатывает коллизии с помощью цепочек (chaining)
Что происходит при вставке дублирующегося ключа?
—> Новое значение перезаписывает старое для этого ключа
👉 Java Portal
Может ли HashMap содержать null-ключи и null-значения?
—> Да, один null-ключ допускается.
—> Несколько null-значений разрешены.
Потокобезопасен ли HashMap?
—>Нет, не потокобезопасен
Безопасные альтернативы:
Collections.synchronizedMap()
(медленнее, блокирует всю карту)ConcurrentHashMap
(предпочтительнее при многопоточности)Могут ли два разных объекта иметь одинаковый хеш-код?
—> Да. Это называется хеш-коллизия
Что вызывает
ConcurrentModificationException
?—> Изменение HashMap во время итерации (например, через
for-each
) без использования Iterator.remove()
Может ли HashMap содержать два ключа с одинаковым хеш-кодом?
—> Да. HashMap обрабатывает коллизии с помощью цепочек (chaining)
Что происходит при вставке дублирующегося ключа?
—> Новое значение перезаписывает старое для этого ключа
Please open Telegram to view this post
VIEW IN TELEGRAM
JWT vs Сессии — что выбрать для авторизации?
Кратко и наглядно разобрали плюсы и минусы двух популярных подходов
Сохрани себе, пригодится⚔️
👉 Java Portal
Кратко и наглядно разобрали плюсы и минусы двух популярных подходов
Сохрани себе, пригодится
Please open Telegram to view this post
VIEW IN TELEGRAM
Генератор надёжных паролей на Java
Пароль с заглавными, строчными, цифрами и спецсимволами? Легко.
С помощью библиотеки
Просто, удобно и безопасно.😊
👉 Java Portal
Пароль с заглавными, строчными, цифрами и спецсимволами? Легко.
С помощью библиотеки
Passay
можно сгенерировать крепкий 10-символьный пароль буквально в пару строк.Просто, удобно и безопасно.
Please open Telegram to view this post
VIEW IN TELEGRAM
Понимание OAuth 2.0
OAuth 2.0 расшифровывается как Open Authorization 2.0
Это фреймворк авторизации, а не протокол аутентификации.
Назначение —> позволяет сторонним приложениям получать доступ к пользовательским ресурсам без раскрытия пользовательских учетных данных.
Ключевые роли в OAuth 2.0
— Владелец ресурса - пользователь, владеющий защищёнными ресурсами
— Клиент - приложение, запрашивающее доступ к защищённым ресурсам
— Сервер ресурсов - сервер, на котором хранятся защищённые ресурсы
— Сервер авторизации - сервер, выдающий токены доступа после согласия пользователя
Стандартный поток OAuth (Authorization Code Flow)
1. Клиент перенаправляет пользователя на сервер авторизации
2. Пользователь проходит аутентификацию и предоставляет разрешения
3. Сервер авторизации возвращает клиенту код авторизации
4. Клиент обменивает код на токен доступа
5. Клиент использует токен доступа для обращения к защищённым ресурсам
Лучшие практики реализации
⏩ Корректная реализация OAuth 2.0 требует внимания к деталям безопасности
⏩ Команды разработки часто используют инструменты ревью кода, чтобы на раннем этапе выявить проблемы
⏩ Инструменты вроде
⏩ При работе с протоколами авторизации стоит рассмотреть использование анализа кода с фокусом на безопасность
👉 Java Portal
OAuth 2.0 расшифровывается как Open Authorization 2.0
Это фреймворк авторизации, а не протокол аутентификации.
Назначение —> позволяет сторонним приложениям получать доступ к пользовательским ресурсам без раскрытия пользовательских учетных данных.
Ключевые роли в OAuth 2.0
— Владелец ресурса - пользователь, владеющий защищёнными ресурсами
— Клиент - приложение, запрашивающее доступ к защищённым ресурсам
— Сервер ресурсов - сервер, на котором хранятся защищённые ресурсы
— Сервер авторизации - сервер, выдающий токены доступа после согласия пользователя
Стандартный поток OAuth (Authorization Code Flow)
1. Клиент перенаправляет пользователя на сервер авторизации
2. Пользователь проходит аутентификацию и предоставляет разрешения
3. Сервер авторизации возвращает клиенту код авторизации
4. Клиент обменивает код на токен доступа
5. Клиент использует токен доступа для обращения к защищённым ресурсам
Лучшие практики реализации
@coderabbitai
могут помочь обнаружить типовые ошибки при реализации OAuth во время ревьюPlease open Telegram to view this post
VIEW IN TELEGRAM
Типы выходных файлов, создаваемых при компиляции Java-кода
Native Image — > Нативный образ — > Работает без JVM
👉 Java Portal
.class
— > Выполняется в JVM.jar
— > Упаковка кода для повторного использования.jmod
— >Поддерживает модульные Java-приложенияNative Image — > Нативный образ — > Работает без JVM
.war
— >Развёртывание веб-приложений на Java.ear
— > Развёртывание корпоративных Java-приложений.apk
— > Установка Java-приложений на Android.so
— > Компиляция в нативный код (shared object)Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM