Spring Data Rest Controller (EndPoint)的Spring AOP切入点



我想对我的spring启动应用程序的每个api调用做一些事情。我使用spring AOP来实现这一点。使用:

@Pointcut("within(@org.springframework.stereotype.Controller *)")
public void controller() {
}
@Pointcut("within(@org.springframework.web.bind.annotation.RestController *)")
public void restController() {
}
@After("(controller() || restController())")
public void loggingAdvice(JoinPoint joinPoint) {
// TODO: do something
}

使用它,我可以得到API被调用时的所有事件。但是,我也将spring rest数据用于自动生成API端点的crud机制,例如:

@RepositoryRestResource(collectionResourceRel = "users", path = "users")
public interface UserRepository extends PagingAndSortingRepository<User, Long> {
User findByEmail(String email);
}

问题是,我可以为每个API端点创建一个点切割是由弹簧休息数据生成的?

以下切入点将针对所有RESTful端点调用在"/users"

考虑UserRepository的包装是rg.so.example.datarest

@Pointcut("execution(* rg.so.example.datarest.UserRepository.*(..))")
public void dataRest() {
}

一个针对包rg.so.example.datarest中所有Repository实现的更通用的切入点是

@Pointcut("execution(* rg.so.example.datarest..*(..))")

最新更新