выполнение pointcut для конкретного конструктора класса

Я пытаюсь создать конкретный конструктор класса pointcut, но получаю следующий маркер: pointcut marker error
Код аспекта:

public aspect CarLogger {
private Logger logger;

pointcut instantiate() : execution (Car.new(..));  

after() : instantiate(){
    logger.log(Level.INFO, "In Car::Car()", thisJoinPoint.getThis());
}

этот код не возвращает совпадений для этого имени типа Car. Но если я изменю execution (Car.new(..)) на execution (*.new(..)), я получу все конструкторы в проекте.
Я хочу, чтобы pointcut выполнялся только для определенного класса Car


person Gil Peretz    schedule 09.06.2015    source источник
comment
Можете ли вы добавить полное имя вашего класса (т.е. вместе с package как com.abc.vehicle.Car.new(..)) вместо Car в pointcut выполнения.   -  person Naman Gala    schedule 09.06.2015


Ответы (1)


Я думаю, это потому, что pointcut не может сопоставить Car с вашим классом, так как вы не указали правильный путь к нему, то есть полное имя along with package.

pointcut instantiate() : execution (com.abc.vehicle.Car.new(..)); 
person Naman Gala    schedule 09.06.2015
comment
Со мной тоже такое бывает, я тоже забываю мелкие мелочи. - person Naman Gala; 09.06.2015