Урок 8. Дополнительные возможности

Сайт: Система дистанционного обучения ФГБОУ ВО ЮГУ
Курс: Тест Глобал
Книга: Урок 8. Дополнительные возможности
Напечатано:: Гость
Дата: среда, 2 июля 2025, 16:01

Описание

В данном уроке рассматриваются:

  • Поиск по шаблону

  • Универсальный фильтр

  • Работа с файлами

  • Точки расширений

  • Проектное переопределение кода

  • Шаблоны thymeleaf

  • Логирование

  • Мониторинг производительности

  • SSH-сервис сервера приложений

  • Локализация приложений

  • Миграция данных


2. Универсальный фильтр

Универсальный фильтр – сервис позволяющий осуществлять фильтрацию в списках. Позволяет фильтровать записи по коллекциям и значениям атрибутов объектов, на которые ссылаются объекты текущего класса.

Руководство по универсальному фильтру


3. Работа с файлами

Сервис прикрепленных файлов позволяет прикреплять к объектам класса произвольные файлы, которые сохраняются в специальном хранилище на сервере и сопоставляются с конечным объектом-владельцем.

Руководство разработчика: Сервисы класса # Сервис прикрепленных файлов


4. Шаблоны Thymeleaf

Шаблонизатор Thymeleaf используется для реализации наследования разметки выборки.

Руководство разработчика: Выборки # Использование шаблонов в разметке

Кроме использования шаблонизации в разметке, есть возможность использования шаблонов и в прикладном коде, например, формировать текст для html-фреймов.


5. Точки расширений

Функционал для исполнения кода в модулях, от которых нет зависимости.

Руководство разработчика: Дополнительные возможности # Точка расширения


6. Проектное переопределение кода

С помощью проектного переопределения возможно заменить оригинальные выборки/отображения или исполняемые методы проектными.

Руководство разработчика: Дополнительные возможности # Проектное перекрытие кода Api, Avi, Lib, Pkg


7. Логирование

Для логирования существует сразу несколько инструментов:

  • Логирование через Btk_Log

    Использует специальную коллекцию переменной ссылочности Btk_Log и пишет данные в базу. Для логирования коллекция подключается как обычно, после чего доступны для использования методы вставки записей через обычные транзакции или автономные

  • Логирование сервера приложений

    Использует Logger сервера для вывода информации в консоль. Для логирования есть методы tracedebuginfowarn и error, которые сохраняют в консоли сервера переданные сообщения с соответствующим уровнем.

    Пример использования –

    _logger.info("Пересчет регистра прав ролей")
  • Логирование в инфо-панель

    Использует InfoLog приложения для записи информации в лог сообщений. Для вывода сообщений создано отображение Btk_InfoLogAvi#Default, которое принято выводить на отдельной панели для основной выборки приложения в нижней части. Для логирования есть методы infowarnerror и confirm, которые сохраняют в логере переданные сообщения с соответствующим уровнем.

    Пример использования –

    application.infoLog.error("Отмена загрузки файла")

    Пример открытия инфо-панели –

    val vMaster = application.mainSelection
    if (vMaster.form.findSelection(Btk_InfoLogAvi.default()) == null) {
       vMaster.createPanelBuilder(Btk_InfoLogAvi.default()).align(Align.bottom).toggle()
    }

    Вручную инфо-панель можно открыть/закрыть из меню Сервис -> Открыть информационную панель

  • Логирование действий пользователя

    Используется для отслеживания процесса выполнения запросов и подстановки параметров, последовательности вызова операций и открытия форм.

    Руководство разработчика: Отладка приложений # Логирование на сторону клиента


8. Мониторинг производительности

Руководство разработчика: Отладка приложений # Мониторинг производительности

Наиболее часто используется VisualVM для поиска узких мест в части обращений к базе данных. Пример результата мониторинга производительности с использованием VisualVM:

G3System

По данным можно определить наличие одинаковых повторяющихся обращений к базе данных или запросы, которые выполняются слишком долго, для дальнейшей оптимизации работы бизнес-логики