Урок 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
сервера для вывода информации в консоль. Для логирования есть методыtrace
,debug
,info
,warn
иerror
, которые сохраняют в консоли сервера переданные сообщения с соответствующим уровнем.Пример использования –
_logger.info("Пересчет регистра прав ролей")
-
Логирование в инфо-панель
Использует
InfoLog
приложения для записи информации в лог сообщений. Для вывода сообщений создано отображениеBtk_InfoLogAvi#Default
, которое принято выводить на отдельной панели для основной выборки приложения в нижней части. Для логирования есть методыinfo
,warn
,error
и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
:
По данным можно определить наличие одинаковых повторяющихся обращений к базе данных или запросы, которые выполняются слишком долго, для дальнейшей оптимизации работы бизнес-логики
9. SSH-сервис сервера приложений
Руководство разработчика: Сервисы сервера приложений # SSH консоль сервера