我想创建一个被标注了具体的注解私有方法的切入点。 然而,当注释是像下面的私有方法我的方面不会被触发。
@Aspect
public class ServiceValidatorAspect {
@Pointcut("within(@com.example.ValidatorMethod *)")
public void methodsAnnotatedWithValidated() {
}
@AfterReturning(
pointcut = "methodsAnnotatedWithValidated()",
returning = "result")
public void throwExceptionIfErrorExists(JoinPoint joinPoint, Object result) {
...
}
服务接口
public interface UserService {
UserDto createUser(UserDto userDto);
}
服务实现
public class UserServiceImpl implements UserService {
public UserDto createUser(UserDto userDto) {
validateUser(userDto);
userDao.create(userDto);
}
@ValidatorMethod
private validateUser(UserDto userDto) {
// code here
}
但是,如果我移动注释到一个公共接口方法实现createUser
,我的方面被触发。 我应该如何定义我的切入点或者配置我的方面,让我原来使用的情况下工作?