Главная » Spring » Определение срезов множества точек сопряжения Spring

0

На рис. 5.4 представлено выражение, определяющее срез множест- ва точек сопряжения, который можно использовать для применения совета к вызову метода play()  интерфейса Instrument.

Рис. 5.4. Выражение, определяющее срез множества точек сопряжения AspectJ и выбирающее метод play() интерфейса Instrument

Указатель execution() используется здесь для выбора метода play() интерфейса Instrument. Описание метода начинается со звездочки, указывающей, что тип возвращаемого методом значения не должен учитываться. Далее определяются полное имя класса и имя метода, который требуется выбрать. В списке параметров метода указаны две точки, идущие подряд (..), указывающие, что в срез может быть включена любая точка сопряжения, соответствующая любому вы- зову метода play(), независимо от конкретного списка передаваемых ему аргументов.

Теперь предположим, что необходимо ограничить множество точек  сопряжения  границами  пакета  com.springinaction.springidol. В этом случае можно задействовать указатель within(), как показа- но на рис. 5.5.

Рис. 5.5. Ограничение множества точек сопряжения с помощью указателя within()

Обратите внимание на оператор &&, объединяющий указатели execution() и within() логической операцией «И» (то есть использо- ваться будут только точки сопряжения, где будут выполнены требо- вания обоих указателей). Аналогично, чтобы объединить указатели логической операцией «ИЛИ», можно было бы использовать опе- ратор ||. А чтобы инвертировать смысл указателя – использовать оператор !.

Поскольку в языке разметки XML амперсанды имеют специаль- ное значение, при определении срезов множества точек сопряжения в конфигурационном XML-файле вместо оператора && можно ис- пользовать оператор and. Аналогично можно использовать операто- ры or и not вместо || и ! (соответственно).

Источник:   Уоллс К., Spring в действии. – М.: ДМК Пресс, 2013. – 752 с.: ил.

По теме:

  • Комментарии