作为错误https://github.com/spring-projects/spring-hateoas/issues/220的临时修复,我想修改org.springframework.hateoas.core.AnnotationMappingDiscoverer.getMapping
方法的返回值,以便我可以手动解析占位符。这是我尝试过的方面:
<aop:aspectj-autoproxy />
@Component
@Aspect
public class AnnotationMappingDiscovererFix {
@Around("execution(* org.springframework.hateoas.core.AnnotationMappingDiscoverer.getMapping(..))")
public Object resolvePlaceholders(ProceedingJoinPoint joinPoint) throws Throwable {
Object mapping = joinPoint.proceed();
// resolve placeholders manually...
return mapping;
}
}
但这个切入点从未被触发,任何想法为什么?
答案 0 :(得分:0)
使用基于代理的Spring AOP,您只能定位Spring bean /组件。我不是Spring用户,所以我不确定,但我不认为你可以通过自己的AOP框架实际拦截Spring框架类,因为“hen vs. egg”引导问题。
但是如果你通过加载时编织(LTW)使用完整的AspectJ,你应该能够实现你想要的,因为在Spring类之前加载了AspectJ编织代理( aspectjweaver.jar )因此可以在类加载阶段修改它们。 Spring documentation解释了如何将AspectJ与Spring结合使用。