Аспектно - ориентированное программирование. Создание простого Spring примера

Содержание

Слайд 2

Создание простого Spring примера создадим в Eclipse проект Maven и назовем

Создание простого Spring примера

создадим в Eclipse проект Maven и назовем его

SpringAOPExample. В файле pom.xml будет содержать следующие зависимости:
Слайд 3

Слайд 4

Пример из жизни: Вы приходите в библиотеку и просите выдать вам

Пример из жизни:
Вы приходите в библиотеку и просите выдать вам книгу.

В программе данное действие будет представлено функцией getBook(String author, String book_name).
Перед тем как выдать вам книгу, необходимо проверить, есть ли такая в наличии: checkBook(String author, String book_name).
Помимо этого было бы неплохо проверить, нет ли у вас задолженностей по книгам, ведь без возврата всех книг нельзя брать новые: checkReader(String reader_name).
Если все необходимые условия выполнены, то вам выдается книга. Однако после этого надо бы пометить, что данная книга находится теперь у вас на руках: booked(String author, String book_name, String reader_name).
Слайд 5

Основные понятия: Аспект (aspect) — модуль или класс, реализующий сквозную функциональность.

Основные понятия:

Аспект (aspect) — модуль или класс, реализующий сквозную функциональность. Если

в ООП базовым элементом является класс, то в АОП — это аспект;
Точка соединения (join point) — определяется как любая логическая точка в процессе выполнения программы, где встречаются основная программа и аспект. В Spring AOP точка соединения всегда соответствует вызову метода;
Слайд 6

Напоминалка Для языка Java парадигма АОП реализуется с помощью такого фреймворка,

Напоминалка

Для языка Java парадигма АОП реализуется с помощью такого фреймворка, как

Spring AOP , который заключает всю сквозную функциональность в аспекты. Проще говоря, он способен улавливать выполнение какого-либо метода и добавлять до или после него выполнение других методов. Делается это с помощью Advice(совет, рекомендация). В Spring AOP есть 4 вида рекомендаций:
Рекомендация before — запускается до выполнения метода;
Рекомендация after — запускается после выполнения метода;
Рекомендация throws — выполняется после того, как метод выбросит исключение;
Рекомендация around — окружает точку соединения. Объединяет в себе три вышеперечисленные рекомендации;
Слайд 7

Добавляем в проект зависимости

Добавляем в проект зависимости

Слайд 8

Создаём класс сервисов пользователя

Создаём класс сервисов пользователя

Слайд 9

помещаем конфигурационный файл Spring с именем Spring-Customer.xml

помещаем конфигурационный файл Spring с именем Spring-Customer.xml

Слайд 10

Слайд 11

Слайд 12

Вывод программы

Вывод программы

Слайд 13

Spring AOP Advices (Рекомендации) Рекомендация before

Spring AOP Advices (Рекомендации) Рекомендация before

Слайд 14

В конфигурационном файле Spring (Spring-Customer.xml) создаем бин для класса BeforeMethod, а

В конфигурационном файле Spring (Spring-Customer.xml) создаем бин для класса BeforeMethod, а

также новый объект с именем customerServiceProxy:

Свойство с именем target определяет бин класса, с которым мы будем работать. Свойство с именем interceptorNames определяет какие классы (рекомендации) будут работать с классом, находящемся в свойстве target. Теперь при запуске программы вы увидите следующее:

Слайд 15

Вывод программы до выполнения каждого метода класса CustomerService выполняется метод before рекомендации BeforeMethod

Вывод программы

до выполнения каждого метода класса CustomerService выполняется метод before рекомендации

BeforeMethod
Слайд 16

Рекомендация after

Рекомендация after

Слайд 17

Конфигурационный файл Spring-Customer.xml:

Конфигурационный файл Spring-Customer.xml:

Слайд 18

Слайд 19

Рекомендация throws Выполняется после того, как метод выбросит исключение.

Рекомендация throws

Выполняется после того, как метод выбросит исключение.

Слайд 20

Слайд 21

Слайд 22

Рекомендация around Сочетает в себе три вышеприведенных рекомендации и выполняется во время выполнения метода.

Рекомендация around

Сочетает в себе три вышеприведенных рекомендации и выполняется во время

выполнения метода.
Слайд 23

Слайд 24

Конфигурационный файл Spring-Customer.xml

Конфигурационный файл Spring-Customer.xml