AOP @Around не работает с JSF + Spring - PullRequest
1 голос
/ 27 июля 2011

Я пытаюсь перехватить все вызовы 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, это прекрасно работает:

@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>

Некоторая помощь, пожалуйста ...?

1 Ответ

1 голос
/ 27 июля 2011

Я ожидаю, что у вас нет bean-компонентов Spring типа, присваиваемого javax.faces.component.UIComponent в том же контексте Spring, что и автоматическое проксирование AOP и аспект, следовательно, ничего не происходит. Когда Spring запускает контекст, он регистрирует все компоненты в контексте на уровне INFO. Проверьте контекст, в котором есть ваш dummyAspect, и посмотрите, есть ли там компоненты UI.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...