❓ Вопрос
Как в Spring Boot настроить профили, чтобы автоматически выбирать конфигурацию базы данных для разных окружений? Расскажите, какие файлы properties или yaml для этого используются и как их приоритет определяется.
✅ Ответ
Для настройки профилей в Spring Boot используют файлы application-{profile}.properties или application-{profile}.yaml, где {profile} — имя профиля, например, dev или prod. Профиль активируется через свойство spring.profiles.active, которое можно задавать в основном application.properties , переменных окружения или аргументах командной строки. Spring Boot загружает сначала основной application.properties , затем перекрывает его значениями из файла активного профиля, определяя приоритет конфигураций. Это позволяет удобно переключать настройки базы данных и другие параметры для разных окружений.
#lexicon #собеседование #java #middle #spring_boot #backend
Как в Spring Boot настроить профили, чтобы автоматически выбирать конфигурацию базы данных для разных окружений? Расскажите, какие файлы properties или yaml для этого используются и как их приоритет определяется.
✅ Ответ
#lexicon #собеседование #java #middle #spring_boot #backend
Lexicon | Java вопросы
#quiz #lexicon #собеседование #java #junior #backend_optimization
🧠 Анализ плана выполнения SQL-запроса
Anonymous Quiz
100%
План выполнения и операции СУБД
0%
Только время выполнения запроса
0%
Синтаксические ошибки в запросе
📘 Разбор опроса
Анализ плана выполнения SQL-запроса
Вопрос: Что показывает explain plan для анализа производительности запроса?
✅ Правильный ответ: План выполнения и операции СУБД
Explain plan показывает последовательность операций СУБД (сканирование, индексы, соединения) для оптимизации запроса.
Анализ плана выполнения SQL-запроса
Вопрос: Что показывает explain plan для анализа производительности запроса?
✅ Правильный ответ: План выполнения и операции СУБД
Explain plan показывает последовательность операций СУБД (сканирование, индексы, соединения) для оптимизации запроса.
👍1
❓ Вопрос
Как ты объяснишь основное различие между checked и unchecked исключениями в Java, и почему важно это различие при проектировании API?
✅ Ответ
Checked исключения требуют обязательной обработки или декларации с помощью throws, что обеспечивает явное управление ошибками на этапе компиляции. Unchecked исключения не требуют явного перехвата и обычно сигнализируют о проблемах, которые можно считать программными ошибками. При проектировании API важно различать эти типы исключений для балансировки контроля над ошибками и удобства использования, обеспечивая правильное информирование пользователей API о возможных ошибках.
#lexicon #собеседование #java #junior #java_errors #backend
Как ты объяснишь основное различие между checked и unchecked исключениями в Java, и почему важно это различие при проектировании API?
✅ Ответ
#lexicon #собеседование #java #junior #java_errors #backend
👍1
Lexicon | Java вопросы
#quiz #lexicon #собеседование #java #junior #backend_scalability
🧠 Эффективное кеширование в backend
Anonymous Quiz
100%
Регулярная инвалидация кеша
0%
Увеличение размера кеша
0%
Использование только одного уровня кеша
📘 Разбор опроса
Эффективное кеширование в backend
Вопрос: Какой подход помогает избежать устаревших данных в кеше?
✅ Правильный ответ: Регулярная инвалидация кеша
Инвалидация кеша при изменении данных предотвращает использование устаревших значений.
Эффективное кеширование в backend
Вопрос: Какой подход помогает избежать устаревших данных в кеше?
✅ Правильный ответ: Регулярная инвалидация кеша
Инвалидация кеша при изменении данных предотвращает использование устаревших значений.
❓ Вопрос
Как реализовать аутентификацию с помощью JWT в REST API? Опишите конкретные шаги и примеры использования.
✅ Ответ
Аутентификация с помощью JWT в REST API включает создание и подпись токена при успешной проверке учетных данных пользователя, обычно после логина. Токен содержит полезную нагрузку с идентификатором пользователя и временем истечения, защищен секретным ключом. При последующих запросах сервер проверяет подпись и валидность токена из заголовка Authorization, что позволяет обеспечивать доступ к защищенным ресурсам без сессий. Важно реализовать обновление токенов и обработку ошибок в случае истечения срока действия или подделки токена.
#lexicon #собеседование #java #middle #backend_security #backend #core
Как реализовать аутентификацию с помощью JWT в REST API? Опишите конкретные шаги и примеры использования.
✅ Ответ
#lexicon #собеседование #java #middle #backend_security #backend #core
Lexicon | Java вопросы
#quiz #lexicon #собеседование #java #junior #spring_security
🧠 Spring Security: UserDetailsService
Anonymous Quiz
0%
loadUserByUsername
50%
findUserByUsername
50%
getUserDetails
📘 Разбор опроса
Spring Security: UserDetailsService
Вопрос: Какой метод нужно реализовать в UserDetailsService?
✅ Правильный ответ: loadUserByUsername
Метод loadUserByUsername загружает данные пользователя по имени для аутентификации.
Spring Security: UserDetailsService
Вопрос: Какой метод нужно реализовать в UserDetailsService?
✅ Правильный ответ: loadUserByUsername
Метод loadUserByUsername загружает данные пользователя по имени для аутентификации.
Lexicon | Java вопросы
#quiz #lexicon #собеседование #java #junior #backend_arch
🧠 Монолит vs Микросервисы: Простота развертывания
Anonymous Quiz
100%
Монолит
0%
Микросервисы
0%
Одинаково сложно
📘 Разбор опроса
Монолит vs Микросервисы: Простота развертывания
Вопрос: Что проще развернуть и тестировать?
✅ Правильный ответ: Монолит
Монолит проще развертывать и тестировать из-за единой кодовой базы.
Монолит vs Микросервисы: Простота развертывания
Вопрос: Что проще развернуть и тестировать?
✅ Правильный ответ: Монолит
Монолит проще развертывать и тестировать из-за единой кодовой базы.
❓ Вопрос
Опишите конкретный случай, когда выбор типа балансировщика нагрузки (например, Round Robin vs Least Connections) повлиял на производительность сервиса. Какие метрики и данные вы анализировали для этого решения?
✅ Ответ
Выбор типа балансировщика нагрузки определяется распределением заданий между серверами и их текущей нагрузкой. Round Robin равномерно распределяет запросы без учёта загрузки, что подходит при одинаковой производительности узлов и равномерном трафике. Least Connections оптимизирует производительность в условиях разной загрузки серверов, направляя запросы на наименее загруженные. Для принятия решения анализируются метрики времени отклика, загрузки CPU и количества активных соединений для оценки эффективности балансировки.
#lexicon #собеседование #java #senior #backend_networking #backend #core
Опишите конкретный случай, когда выбор типа балансировщика нагрузки (например, Round Robin vs Least Connections) повлиял на производительность сервиса. Какие метрики и данные вы анализировали для этого решения?
✅ Ответ
#lexicon #собеседование #java #senior #backend_networking #backend #core
Lexicon | Java вопросы
#quiz #lexicon #собеседование #java #junior #spring_injection
🧠 Способы конфигурации бинов в Spring
Anonymous Quiz
0%
Только XML
100%
XML, Java Config, аннотации
0%
Только аннотации
📘 Разбор опроса
Способы конфигурации бинов в Spring
Вопрос: Какие основные способы конфигурации Spring бинов?
✅ Правильный ответ: XML, Java Config, аннотации
Spring поддерживает три основных подхода: XML, Java Config и аннотации. Они могут использоваться совместно.
Способы конфигурации бинов в Spring
Вопрос: Какие основные способы конфигурации Spring бинов?
✅ Правильный ответ: XML, Java Config, аннотации
Spring поддерживает три основных подхода: XML, Java Config и аннотации. Они могут использоваться совместно.
❓ Вопрос
Как используя volatile или Atomic-переменные, можно снизить вероятность race conditions? Расскажите с примерами.
✅ Ответ
Использование volatile гарантирует видимость изменений переменной между потоками, предотвращая кэширование значений в рабочих потоках, но не обеспечивает атомарность операций. Atomic-переменные, такие как AtomicInteger, предоставляют атомарные методы для изменения данных без явной синхронизации, что снижает вероятность race conditions при обновлении счётчиков или флагов. Например, метод incrementAndGet() атомарно увеличивает значение, исключая состояния гонки. Такой подход упрощает многопоточное программирование, уменьшая необходимость использования synchronized блоков.
#lexicon #собеседование #java #junior #java_concurrency #backend
Как используя volatile или Atomic-переменные, можно снизить вероятность race conditions? Расскажите с примерами.
✅ Ответ
#lexicon #собеседование #java #junior #java_concurrency #backend