Регистрация операций AspectJ - PullRequest
0 голосов
/ 29 марта 2012

У меня есть интерфейс CUDService, который содержит операции создания, обновления и удаления в моем проекте.Все мои сервисы реализуют этот интерфейс.CUDServiceImpl - это абстрактный класс, который реализует CUDService и имеет открытые методы (создание, обновление, удаление).Например, у меня есть интерфейс StudentService с двумя методами.

public interface StudentService extends CUDService,Logged{

addMark();
deleteMark();

}

public class StudentServiceImpl extends CUDServiceImpl implements StudentService{

@Override addmark...
@Override deletemark..


}

Обратите внимание на интерфейс Logged!Это пустой интерфейс, который я создал для маркировки Сервисов, которые я хочу, чтобы аспектJ отмечал для ведения журнала.

pointJ аспектаJ определен так:(..))

и это работает для методов addMark (), deleteMark (), НО это не работает для методов создания, обновления, удаления, определенных в CUDServiceImpl!Это будет работать, если я переопределю эти методы в классе StudentServiceImpl следующим образом:

@Override create(){
super.create();
}

, но я бы хотел, чтобы он работал без переопределения всех методов из CUDService. Заранее спасибо!

1 Ответ

0 голосов
/ 29 марта 2012

CUDServiceImpl не реализует интерфейс Logged, поэтому его методы не пересекаются аспектом.Вот почему вы должны переопределить его в классе, который его реализует ..

...