Всем привет! На связи команда Explyt Spring. Недавно у нас вышел очередной релиз, который включает несколько важный обновлений: поддержа SQL, очередные улучшения для Spring Debugger, поддержка Spring пропертей для Docker-Compose файлов и многое другое. Если вам интересны подробности то добро пожаловать под кат!

Поддержка SQL

Ранее в нашем плагине уже была поддержка JPQL и поддержка SQL из сторонних плагинов, например DB Navigator. Где пользователь мог в настройках выбрать нужный ему диалект SQL. Теперь мы решили добавить базовую поддержку SQL по умолчанию для DML операторов, который встречаются непосредственно в коде. Теперь все места, где потенциально может быть native SQL, будут иметь сразу подсветку синтаксиса и автодополнения, без всяких дополнительный настроек:

  1. Spring - JdbcTemplate;

  2. Spring - @Query(nativeQuery = true, "...");

  3. JPA - @NamedNativeQuery;

  4. Строки которые содержат 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.

Комментарии (0)