我试图拦截对JSF IUComponents的所有调用,但这不起作用:
@Pointcut("execution(* javax.faces.component.UIComponent+.encode*(..))")
private void interceptor() { }
@Around("interceptor()")
public void aroundMethod(ProceedingJoinPoint joinPoint) {
System.out.println("******** Hello from Interceptor Method! **********");
}
但是,当我更改切入点时,这很完美:
@Pointcut("execution(* com.hsa.business.*.*(..))")
private void interceptor() { }
@Around("interceptor()")
public void aroundMethod(ProceedingJoinPoint joinPoint) {
System.out.println("******** Hello from Interceptor Method! **********");
}
这是我在xml中显示的信息:
<bean id="dummyAspect" class="com.hsa.security.aspectj.JSFComponentSecurityAspect" />
<aop:aspectj-autoproxy />
和:
<application>
<el-resolver>org.springframework.web.jsf.el.SpringBeanFacesELResolver</elresolver>
</application>
请帮忙...?
最佳答案
我希望您在与AOP自动代理和方面相同的Spring上下文中,没有可分配给javax.faces.component.UIComponent的类型的Spring Bean,因此没有发生任何事情。当Spring启动一个上下文时,它将在INFO级别记录该上下文中的所有bean。检查其中包含“ dummyAspect”的上下文,并查看UI组件是否也在那里。