В новой статье от команды Amplicode я расскажу, как можно создать несколько Docker Compose файлов для разных нужд. Например, для продакшена и разработки, и при этом не утонуть в копипасте.
Главный по Spring
Перевод серверов СЭД на Linux и Postgres на практике
Привет, Хабр! Это вторая серия кейса по переводу на Linux и Postgres серверов системы электронного документооборота ТЕЗИС в компании ITMS (но можно читать ее как отдельную статью). Речь идет о крупном проекте — 2000 пользователей, БД на 700 Гб. Раньше ITMS было подразделением глобальной компании, после 2022 года произошла локализация бизнеса, из‑за этого встал вопрос перехода на российское ПО. СЭД ТЕЗИС — кроссплатформенный продукт на Java, поэтому переписывать систему не понадобилось. Сложность заключалась в сжатых сроках, большом объеме данных и том факте, что параллельно с заменой ОС и СУБД развивалась СЭД и перестраивалось связанное с ней ПО. В прошлой серии мы подробно рассказали о выборе ОС и СУБД, определении зон ответственности и совместимости версий. Сегодня — о том, как происходила замена.
Amplicode Launch Event – конвейер для Spring-приложений прямо в IntelliJ IDEA
На прошлой неделе команда Amplicode провела митап, который длился целых 3,5 часа! За это время состоялось шесть докладов, затрагивающих все аспекты разработки приложений на Spring — от настройки окружения до создания бизнес-логики и реализации админки на React Admin.
Что нового в IntelliJ IDEA 2024.2
Недавно вышла новая версия IntelliJ IDEA 2024.2, в которой появилось довольно много новых фич. Команда Amplicode подготовила обзор основных возможностей IDE, которые на данный момент доступны российским разработчикам без каких-либо ограничений.
Workspaces в IntelliJ IDEA
Команда Spring АйО продолжает следить за последними новинками в мире инструментов для разработчиков. В нашем новом переводе вы узнаете о недавно появившемся плагине для IntelliJ IDEA, который предоставляет долгожданную многими функциональность.
Не используйте Lombok с JPA, пока не прочтете эту статью
Lombok — действительно отличный инструмент. Одна строчка кода, и все ваши JPA сущности перестают корректно работать ;) Но это только в том случае, если вы не знаете, какие фичи Lombok можно использовать вместе с JPA, а какие лучше не стоит.
В этой статье я расскажу про большинство подводных камней, с которыми можно столкнуться, используя Lombok вместе с JPA, и про то, как их обойти используя Amplicode.
JPA Entity. Загрузи меня не полностью
JPA часто подвергается критике за невозможность загружать сущности частично, что на самом деле является большим заблуждением. Spring Data JPA и Hibernate включают в себя множество инструментов по частичной загрузке сущностей.
Команда Spring АйО подготовила статью, в которой рассмотрела имеющиеся в Spring Data JPA инструменты для частичной загрузки сущностей, а также разобрала их особенности и corner-кейсы.
Что нового в Amplicode 2024.2
Мы рады сообщить, что второй мажорный релиз Amplicode в 2024 году успешно состоялся. В этот релиз вошло большое количество улучшений, исправлений и новых фич. Вот некоторые из них:
* Gutter Icons для Spring-объектов
* Улучшенная генерация Spring Web тестов
* Поддержка Extends и Include в Docker Compose
* Генерация отдельных HTTP-методов для REST-контроллеров
* Поддержка Kubernetes и Helm
Подробнее о каждом из нововведений рассказали в статье.
Flyway + Spring Boot: настройка и написание миграций баз данных
Написание скриптов миграции трудоёмкий процесс. И если есть возможность это дело автоматизировать – этим нужно пользоваться!
В этом гайде я расскажу как подключить и настроить Flyway в Spring Boot приложении, сгенерировать скрипты инициализации и миграции схемы базы данных вместе с Amplicode!
Declarative Gradle: рывок или прорыв?
Полгода назад команда Gradle представила новый продукт — Declarative Gradle. Команда Spring АйО, со своей стороны, провела исследование и готова поделиться результатами.
TL;DR: технология всё ещё активно развивается, но пока что не поддерживается привычными инструментами, такими как IntelliJ IDEA. Несмотря на это, нам удалось запустить Spring Boot приложение!
Обзор GigaIDE от СБЕРа | Российская IntelliJ IDEA | Поддержка Spring вместе с Amplicode
Недавно СБЕР выпустил GigaIDE — новую IDE для Java, Kotlin и не только. Это событие вызвало бурные обсуждения среди разработчиков. Чаще всего звучали следующие вопросы:
Чаще всего звучали следующие вопросы:
1. Это просто пересобранная версия IntelliJ IDEA Community Edition?
2. Если нет, что нового предлагает GigaIDE?
3. Поддерживает ли она работу с базами данных и Spring?
Сегодня отвечу на эти и другие вопросы, которые могут возникнуть у тех, кто заинтересовался GigaIDE.
7 основных способов оптимизировать кеширование в Spring Boot
В условиях растущих требований к производительности современных приложений, кеширование становится одним из ключевых инструментов для их удовлетворения.
В новом переводе от команды Spring АйО вы узнаете про 7 основных техник оптимизации кеширования в Spring Boot, которые могут помочь значительно улучшить производительность. От выбора идеальных кандидатов для кеширования до реализации асинхронного кеша и мониторинга метрик кеша.
Переписывая историю: от инструментов версионирования БД к практике
Пожалуй, почти каждый Spring разработчик сталкивается в своей практике с версионированием баз данных. На эту тему есть отличный доклад на Joker 2023 от Александра Шустанова, в котором спикер сравнивает 2 самых популярных инструмента для миграций БД: Flyway и Liquibase. Редакция Spring АйО приводит транскрипт доклада, для тех, у кого нет 45 минут для просмотра видео.
В статье вас ожидает обзор ключевых особенностей Liquibase и Flyway, а также сравнение их возможностей. Расскажем, когда нужно создавать миграции, как облегчить этот процесс и уменьшить количество ошибок. Осветим некоторые малоизвестные возможности этих инструментов и развеем мифы о других.
Устойчивость микросервисных Spring приложений: роль аннотации @Transactional в предотвращении утечки соединений
В новом переводе от команды Spring АйО вы узнаете, как аннотация @Transactional
помогла решить проблему с утечкой соединений и обеспечила стабильность системы.
Liquibase + Spring Boot: настройка и написание миграций баз данных
Написание скриптов миграции трудоёмкий процесс. И если есть возможность это дело автоматизировать – этим нужно пользоваться!
В этом гайде я расскажу как подключить и настроить Liquibase в Spring Boot приложении, сгенерировать скрипты инициализации и миграции схемы БД, а также дополнить уже существующие changelog файлы новыми скриптами миграции вместе с Amplicode!
Markdown в IntelliJ IDEA как отдельный вид искусства. Рисуем диаграммы и вызываем bash команды
Spring разработчики часто пишут документацию и README/HELP файлы к своим приложениям. Часто это делается в Markdown файлах. Markdown плагин в IntelliJ IDEA распознает файлы, предоставляет специальный редактор с подсветкой, автокомплитом и форматированием, а также дает визуальное отображение в панели предварительного просмотра в реальном времени. Кроме стандартной функциональности в IntelliJ IDEA есть пару уникальных фич, которые команда Spring АйО хотела бы выделить особенно.
Почему String Templates не будет в Java 23?
Неожиданный поворот в поддержке StringTemplates в JDK 23. Команда Java решила отказаться от функциональности, которая есть в большинстве современных языках программирования. Почему так произошло? Кажется, из-за слишком большой гибкости, которую заложили на ранних этапах разработки, а также, нежелания просто сделать “синтаксический сахар” для строковой интерполяции. А чего же хотели разработчики на самом деле? Нам кажется, что все-таки - последнего. Сообщество Spring АйО представляет перевод почтовой переписки Гэвина Бирмана и Брайана Гоеца, в которой решается судьба Spring Templates.
Эффективность Spring-приложений в рантайме. Текущее состояние дел и планы на будущее
Несмотря на то, что данная статья была опубликована более полугода назад, команда Spring АйО по-прежнему считает ее актуальной, важной и интересной.
Себастьян Делойзе, контрибьютор Spring Framework, делится обзором усилий команды Spring по оптимизации эффективности приложений во время выполнения. Он рассматривает Virtual Threads, GraalVM Native Image, Project CRaC, Project Leyden и всё это в контексте Spring!
Spring Boot 3.2: замените свой RestTemplate на RestClient
Эта статья по Spring Boot 3.2 посвящена надстройке над WebClient, которая называется RestClient и представляет собой более интуитивный и современный подход взаимодействия с RESTful сервисами.
В мире Spring Boot отправка HTTP запросов к внешним сервисам является весьма распространенной задачей. Традиционно при достижении этой цели разработчики полагались на RestTemplate. Однако, по мере развития Spring Framework, на свет появился новый и более мощный способ обработки HTTP запросов: так называемый WebClient. Spring Boot 3.2 представил нам надстройку над WebClient, которая получила название RestClient.
RestClient предлагает нам более современные и интуитивно понятные способы взаимодействия с RESTful сервисами.
Hibernate и спецификация JPA: приключение на 20 минут
На прошлой неделе в блоге сообщества Spring АйО вышла статья-перевод про интересный кейс падения производительности при переходе на Hibernate 6.5. Оказалось, что выражения вида publisherId in :ids
при пустом ids
приводит к серьезной деградации производительности. Баг вскоре был пофикшен, однако, не дает покоя вопрос, почему так произошло?
Ниже приводим историю появления и незамедлительного решения этой проблемы, от лица Гэвина Кинга, создателя Hibernate.