Friday, July 12, 2013

AOP with annotation


Сегодня поговорим о той проблеме, с которой пришлось столкнуться намедни. Нужно было логировать только определенные методы и классы в спринговом приложении. В интеренетах полно решений для всех методов, но мало для конкретных. Поэтому восполним этот пробел нижеследующим решение.

Для начала напишем элементарную аннотацию (в дальнейшем, если хотите) ее можно расширить

Затем аннотируем необходимый метод

Далее напишем аспектноориентированный метод (вот такое словосочетание) который будет отлавливать нашу аннотацию. Тут все просто (после выполнения инструкций) - срабатывает лог. Мы говорим, что делаем это для любого метода (нам не интересно ни что он возвращает, ни как называется, ни какие аргументы имеет), у которого есть наша аннотацию

Ну и не забываем добавить в конфиг наш аспектноориентированный подход :) А также просканировать пакет, где этот класс содержится (component-scan)

No comments: