Добавление Аспектно-ориентированного программирования в приложениеНа изображении показано, что аспект логирования применен к главному приложению при помощи pointcuts. Pointcut в АОП описывает, где и как код аспекта должен быть вставлен в целовой код. Изображение показывает как Spring AOP смотрит pointcuts и применяет аспекты в целевом коде в нескольких joint points. 
Добавляем Logging Aspect (аспект логирования)В этой части, вы сможете попробовать Spring AOP, применив аспект логирования к уже существующему приложению — Calculation. Код для аспекта: Аспект логирования, который будет применяться выделен жирным цветом. Запомните, что никто не знает об этом коде аспекта, который ссылается на CalculateSpring код — цель к которой он применяется. В действительности, этот аспект может быть отредактирован независимо от CalculateSpring кода. Этот код выводит сообщение, похожее на следующее, всякий раз, когда вызывается метод Operation в интерфейсе. Вызов происходит из CalculateSpring кода. Результат вызова: Давайте попробуем- Заходим в директорию springaop проекта
- Компилируем проект, используя Maven 2
mvn compile - Запускаем код, используя Maven 2
mvn exec:java -Dexec.mainClass=com.wrox.begspring.CalculateSpringAOP–Dexec.args="3000 3" - Смотрим на результат выполнения:
AOP logging -> execution(getOpsName) AOP logging -> execution(operate) The result of 3000 times 3 is 9000!
Обратите внимание, что запуск двух методов getOpsName() и operate() из интерфейса, вызывает логирование. Еще, реализация интерфейсов - таких как OpAdd и OpMultiply - не логируются вовсе.
|