2012-03-29 79 views
0

我有一个CUDService接口,它包含我的项目中的创建,更新和删除操作。我所有的服务都实现了这个接口。 CUDServiceImpl是一个实现CUDService并具有公共方法(创建,更新,删除)的抽象类。 例如,我有两个方法的StudentService接口。AspectJ操作日志

public interface StudentService extends CUDService,Logged{ 

addMark(); 
deleteMark(); 

} 

public class StudentServiceImpl extends CUDServiceImpl implements StudentService{ 

@Override addmark... 
@Override deletemark.. 


} 

注意记录界面!这是一个空的界面,我创建了标记服务我希望aspectJ标记记录。

AspectJ切入点的定义如下:

执行

和这适用于addMark(),deleteMark()方法,但它doesn`(* com.history.Logged + *(..)。) t适用于在CUDServiceImpl中定义的创建,更新和删除方法! 它会工作,如果我将覆盖StudentServiceImpl类这些方法是这样的:

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

但我想使它工作,而不必重写所有的从CUDService方法..在此先感谢!

回答

0

CUDServiceImpl doesen't实现了Logged接口,因此它的方法不被aspectj交叉切割。这就是为什么你必须在实现它的类中重写它。