Всем привет! На связи команда Explyt Spring. Недавно у нас вышел очередной релиз, который включает несколько важный обновлений: поддержа SQL, очередные улучшения для Spring Debugger, поддержка Spring пропертей для Docker-Compose файлов и многое другое. Если вам интересны подробности то добро пожаловать под кат!
Поддержка SQL
Ранее в нашем плагине уже была поддержка JPQL и поддержка SQL из сторонних плагинов, например DB Navigator. Где пользователь мог в настройках выбрать нужный ему диалект SQL. Теперь мы решили добавить базовую поддержку SQL по умолчанию для DML операторов, который встречаются непосредственно в коде. Теперь все места, где потенциально может быть native SQL, будут иметь сразу подсветку синтаксиса и автодополнения, без всяких дополнительный настроек:
Spring — JdbcTemplate;
Spring — @Query(nativeQuery = true, "...");
JPA — @NamedNativeQuery;
Строки которые содержат SQL выражения;

Кроме того для JdbcClient будут работать инспекции для параметров и переходы от параметра к его декларации в строке запроса. Но вы, также как и раньше, можете указать в настройках плагина конкретный диалект SQL из любого стороннего плагина, который это предоставляет — например DB Navigator.
Docker Compose
Для Docker Compose файлов теперь мы поддерживаем авто-дополнения для Spring пропертей и переход к декларации свойств:
Spring Debugger
Remote Debugger
Теперь наш Spring Debugger поддерживает удаленную отладку. Для того чтобы она заработала, нужно чтобы приложение было запущено с параметрами jvm для «ремоут дебага» и должен быть указан путь к нашему Java агенту, о котором мы подробно рассказывали в одной из прошлых статей. Он имеет открытый исходный код и готовый jar файл агента также доступен в нашем репозитории. Все что он делает — это просто сохраняет ссылку на Spring Context и предоставляет ряд утилитных методов для получения «бинов». Поэтому если вы хотите им пользоваться нужно будет доработать ваши «пайплайны» для тестовых сред, добавив туда параметр -javaagent:<путь до explyt-java-agent.jar>:
Spring Property
В момент точки останова, если перейти к файлам свойств, то там мы увидим рантайм значения для ключей, где они могут быть переопределены через переменные среды или параметры командной строки, а если нажмем иконку с «жучком», тогда сможем вычислить PropertySource для конкретного свойства и увидеть откуда же взялось значение. В примере ниже это SystemProperties, а значит значение было переопределено через командную строку:
Spring Bean & Bean Definition
Для любого «бина» можно посмотреть его Bean Definition, а также получить сам «бин» на лету и вызвать на нем любой метод. Для этого мы добавили в «гаттер» иконку с «жучком», которая отображается если мы стоим на «брейк‑поинте». Теперь вам доступна информация о метаданных бина, его scope, фабричный метод, вообщем — весь BeanDefinition одним словом:
Spring Transactional
Мы доработали инфо о транзакции. Теперь помимо типа транзакции и уровня изоляции, еще отображаем Transaction Propagation, точку старта транзакции, а также полный TransactionalInfo статус:
Spring Web
Для Web приложений при старте отладчика, мы умеем вычислять корректный Url по которому будет доступно приложение с учетом порта и server.servlet.context-path. А если в проекте есть Swagger, то учтем и это:
Marketplace
Теперь нас можно скачать и с JetBrains Marketplace. Все прежние способы по прежнему работают. Напрямую c GitHub Releases или наш кастомный репозиторий.
Заключение
Приглашаем вас попробовать наш плагин, а также делиться своими отзывами и предложениями. Ваша обратная связь поможет нам сделать инструмент более полезным и удобным. Для багрепортов и фичриквестов — GitHub Issues и Telegram-чат с командой Explyt Spring плагина. Также напоминаем, что Spring плагин имеет открытый исходный код, который доступен на GitHub.