Найти в Дзене
💡 Spring Boot совет
Если в запросе прилетают лишние поля в JSON, приложение может упасть с ошибкой UnrecognizedPropertyException. Чтобы этого избежать и не ломать API, просто добавьте аннотацию: @JsonIgnoreProperties(ignoreUnknown...
3 дня назад
🚀 AIFlowy: Платформа для разработки AI-приложений
AIFlowy — это мощная открытая платформа для создания AI-приложений, разработанная на Java. Она предлагает множество функций, включая управление пользователями, интеллектуальную оркестрацию рабочих процессов и генерацию контента. Идеально подходит для бизнеса, стремящегося интегрировать AI в свои процессы...
4 дня назад
Опубликовано фото
6 дней назад
💡 Простой пример зависимости vs правильной абстракции
❌ В первой версии Application напрямую создаёт ConsoleLogger. Это жёсткая связка: класс невозможно переиспользовать с другим типом логгера. ✔️ В правильной версии вводится интерфейс Logger. И Application зависит не от конкретного класса, а от абстракции - и логгер передаётся извне...
1 неделю назад
🧩 Как Java загружает классы динамически
Java использует механизм ClassLoader, который подгружает классы прямо во время выполнения программы. Это даёт гибкость - код может загружаться по запросу, подключать модули и расширения на лету. Как это работает: • Bootstrap ClassLoader - загружает базовые классы JVM (java.lang, java.util). • Extension / Platform ClassLoader - подгружает стандартные библиотеки расширений. • Application / System ClassLoader — загружает классы приложения и внешние зависимости из classpath. • Можно создать собственные ClassLoader-ы, чтобы загружать классы из БД, по сети, шифрованных файлов и других источников...
1 неделю назад
🚀 Spring Boot совет
С помощью аннотации @ConditionalOnMissingBean можно задать дефолтный бин, который пользователь сможет переопределить своей стандартной реализацией. ✔️ В конфигурации объявляем бин по умолчанию ✔️ Если...
1 неделю назад
🚀 Spring Boot совет: используйте `Retryable`, чтобы справляться с нестабильными внешними сервисами
Если API отвечает ошибками или падает, вам не обязательно вручную писать циклы повторных попыток. Аннотация Retryable позволяет: • автоматически повторять вызовы при определённых исключениях • управлять количеством попыток • настраивать задержку и экспоненциальный backoff • выполнять fallback через...
2 недели назад
🔥 На stepik вышел курс, который учит Создавать настоящие AI-сервисы, а не просто запускать скрипты
? Этот практический курс по Python и FastAPI покажет, как собрать полноценное приложение с ИИ, базой данных, автогенерацией контента и Telegram-ботом. Ты пройдёшь путь от первого HTTP-запроса до рабочего сервиса, который сам генерирует текст через ИИ, сохраняет данные, отправляет результаты по расписанию и отвечает пользователям...
2 недели назад
Совет по Java/JPA: в JPA можно использовать native queries не только для SELECT, но и для INSERT, UPDATE и DELETE
Совет по Java/JPA: в JPA можно использовать native queries не только для SELECT, но и для INSERT, UPDATE и DELETE. Важно: такие операции идут в обход EntityManager/PersistenceContext, поэтому изменения не попадают в контекст и не синхронизируются с сущностями автоматически. На примере Spring Data JPA: - @Modifying...
2 недели назад
💡 Spring Boot Tip
💡 Spring Boot Tip Когда вы строите REST API в Spring Boot, часто используют префикс /api для всех контроллеров. Но добавлять @RequestMapping("/api") в каждый контроллер — неудобно и захламляет код. Гораздо проще задать единый префикс через конфигурацию: @Configuration class WebMvcConfig implements WebMvcConfigurer { @Override public void configurePathMatch(PathMatchConfigurer configurer) { configurer...
2 недели назад
💡 Java 22+: Foreign Function & Memory API — прямой доступ к нативной памяти и вызовам C без оверхеда
💡 Java 22+: Foreign Function & Memory API — прямой доступ к нативной памяти и вызовам C без оверхеда Новый Foreign Function & Memory API (JEP 442), который стал стабильным в Java 22, выводит Java на уровень системных языков: - можно вызывать функции из C, Rust и любых нативных библиотек без JNI - работать с off-heap памятью напрямую - передавать структуры...
3 недели назад