私は自分のプロジェクトで作成、更新、削除操作を保持するCUDServiceインターフェイスを持っています。すべてのサービスがそのインターフェースを実装しています。 CUDServiceImplは、CUDServiceを実装し、パブリックメソッド(作成、更新、削除)を持つ抽象クラスです。 たとえば、2つのメソッドを持つStudentServiceインターフェイスがあります。AspectJ操作のログ
public interface StudentService extends CUDService,Logged{
addMark();
deleteMark();
}
public class StudentServiceImpl extends CUDServiceImpl implements StudentService{
@Override addmark...
@Override deletemark..
}
Loggedインターフェイスに注意してください。それは空のインターフェイスです。これは、aspectJがログ用にマークするサービスをマークするために作成したものです。
AspectJのポイントカットは、このように定義されています
実行(。* com.history.Logged + *(..))
、これはaddMark()、deleteMark()メソッドのために動作しますが、それdoesn` CUDServiceImplで定義されているメソッドの作成、更新、削除のために働きません! 私はこのようなStudentServiceImplクラスでこれらのメソッドをオーバーライドするかどうそれは動作します:
@Override create(){
super.create();
}
を私は.. CUDServiceからのすべてのメソッドをオーバーライドするために事前に感謝しなくても、それを動作させるしたいと思います!