Spring AOP: создайте подсказку для метода в классе, который расширяет абстрактный класс - PullRequest
0 голосов
/ 26 февраля 2020

У меня есть абстрактный класс, который реализует некоторый базовый c интерфейс. ( метод атаки не унаследован от базового c интерфейса )

public abstract class AbstractClass implements BasicInterface {

    public void attack(String attackerId, float attackerAttackSpeed) {
           ... // method body
    }
}

У меня также есть класс, расширяющий абстрактный класс.

@Service
public class A extends AbstractClass {

  // other methods...
}

Прямо сейчас я пытаюсь наблюдать метод атаки (String attackerId, float attackerSpeedAttack)

@Aspect
@Component
public class AspectJ{

    @After(value = "execution(* package.A.attack(attackerId, ..)) && args(attackerId)")
    public void broadcastAttackMessage(String attackerId) {
           ... //method body
    }
}

Но, к сожалению, Intellij сказал мне, что Этот совет не рекомендует никаких методов . Также во время запуска приложения я получил ошибку с трассировкой стека:

Caused by: java.lang.IllegalArgumentException: error at ::0 name binding only allowed in target, this, and args pcds

Что я делаю не так? Есть ли способ наблюдать метод из суперкласса? Я что-то пропустил?

...