Как заставить Spring @Cacheable работать поверх аспекта AspectJ?
Я создал аспект AspectJ, который отлично работает в весеннем приложении. Теперь я хочу добавить кеширование, используя пружины Cacheable аннотации.
Чтобы проверить, что @Cacheable подняли, я использую имя несуществующего менеджера кэша. Обычное поведение во время выполнения - исключение. Но в этом случае исключение не выдается, что говорит о том, что аннотация @Cacheable не применяется к перехватывающему объекту.
/* { package, some more imports... } */
import org.aspectj.lang.ProceedingJoinPoint;
import org.aspectj.lang.annotation.Around;
import org.aspectj.lang.annotation.Aspect;
import org.springframework.cache.annotation.Cacheable;
@Aspect
public class GetPropertyInterceptor
{
@Around( "call(* *.getProperty(..))" )
@Cacheable( cacheManager = "nonExistingCacheManager", value = "thisShouldBlowUp", key = "#nosuchkey" )
public Object intercepting( ProceedingJoinPoint pjp ) throws Throwable
{
Object o;
/* { modify o } */
return o;
}
}
Учитывая, что мой Aspect уже работает, как я могу заставить @Cacheable работать поверх него?