Я пытаюсь понять, как управлять порядком выполнения нескольких аспектов, более конкретно, созданных с помощью аннотации AspectJ @Aspect и используемых в системах с SpringAOP. Я нашел несколько вопросов, как показано ниже, но я ожидаю более систематического и сводного ответа.
Как заказать @ Аспект
Аспекты заказа с помощью Spring AOP && MVC
С AspectJ + SpringAOP аспект может быть введен / вплетен в цель одним из следующих методов (возможно, также других, о которых я не знаю):
- Авто-прокси (на основе DI)
- ткачество во время компиляции
- Посткомпиляционное плетение
- Время ткачества
Хотя для порядка выполнения среди нескольких аспектов, мы можем указать, используя:
- @ DeclarePrecedence, определенный в AspectJ
- @ Порядок, определенный весной
- Упорядоченный интерфейс, определенный в Spring
Таким образом, для каждого из 4 методов литья / плетения, какие из 3 спецификаций заказа будут соблюдаться? Кроме того, если в определенном сценарии поддерживается более одного механизма, возможно ли ввести конфликт порядка? Если да, каково поведение АОП?