Лабораторная работа 2. Конфигурирование приложение Spring c помощью аннотаций. Применение AOП для логирования
Мы продолжаем развивать наше приложение для магазина зоотоваров 🙀.
В этой работе нам необходимо перейти на новое, более простое конфигурирование приложения с помощью аннотаций, добавить функционал по представлению таблиц в виде HTML и измерить скорость выполнения нашего кода c помощью инструментов АОП.
Перед началом работы ознакомитесь с правилами выполнения и сдачи лабораторных работ
- Скопируйте результат выполнения лабораторной работы № 1 в директорию /les04/lab/
- Переделайте приложение так, чтобы его конфигурирование осуществлялось с помощью аннотаций @Component
- Использую аннотацию @Value и SpEL сделайте так, чтобы имя файла для загрузки продуктов, приложение получало из конфигурационного файла application.properties. Данный файл поместите в каталог ресурсов (src/main/resources)
- Добавьте еще одну имплементацию интерфейса Renderer - HTMLTableRenderer которая выводит таблицу в HTML-файл. Сделайте так, чтобы при работе приложения вызывалась эта реализация, а не ConsoleTableRenderer.
- С помощью событий жизненного цикла бина, выведите в консоль дату и время, когда бин ResourceFileReader был полностью инициализирован.
- С помощью инструментов AOП замерьте сколько времени тратиться на парсинг CSV файла.
- Приложение должно запускаться с помощью команды
gradle run, выводить необходимую информацию в консоль и успешно завершаться. - Оформите отчет о выполнении лабораторной работы в виде файла README.md в директории les04/lab. Отчет должен содержать обновленную UML-диаграмму классов в формате mermaid.
- Виды конфигурирования ApplicationContext
- Стереотипные аннотации. Перечислите. Расскажите для чего используются
- Инъекция зависимостей. Перечислите виды автоматического связывания. Расскажите про каждый из них.
- Внедрение параметров. Расскажите как внедрить простые параметры в бин
- Внедрение параметров. Расскажите как внедрить параметры с помощью SpEL
- Режимы получения бинов. Перечислите, кратко расскажите
- Жизненный цикл бинов
- Что такое АОП? Основные понятия AOP
- Типы АОП в Spring
- Виды Advice
- Виды Point Cut
- Чем Spring AOP отличается от AspectJ