我正在尝试让AOP处理JAX-RS服务。它正在处理Spring注入的对象,但不是我的JAX-RS服务。我的假设是它不起作用,因为Jersey创建了我的JAX-RS对象,而不是Spring。如何让AOP处理我的JAX-RS服务?
以下是我如何宣布我的方面:
@Pointcut("execution (* com.ancestry.academy.api.user.UserService.*(..))")
public void apiMethods() {}
@Around("com.ancestry.academy.api.ApiAdvisor.apiMethods()")
public Object aroundApi(ProceedingJoinPoint pjp) throws Throwable
{
System.out.println("User Service API called");
return pjp.proceed();
}
@Pointcut("execution (* com.ancestry.academy.services.user.UserManagerImpl.*(..))")
public void serviceMethods() {}
@Around("com.ancestry.academy.api.ApiAdvisor.serviceMethods()")
public Object aroundService(ProceedingJoinPoint pjp) throws Throwable
{
System.out.println("User Maanageer API called");
return pjp.proceed();
}
第一个方面是我的JAX-RS服务,并且是不起作用的服务。第二个方面是在弹簧注入的bean上提供业务逻辑,它确实有效。
UserService没有什么特别之处,只是它扩展了SpringBeanAutowiringSupport。
我的spring XML文件中有<aop:aspectj-autoproxy/>
。