У меня есть приложение, которое использует ehcache для кэширования (но я думаю, что эта проблема не зависит от фреймворка), с перехватчиком метода, поэтому, в основном, если я отмечу свой метод для кэширования чего-то подобного happnes:
public Object invoke(MethodInvocation mi) throws Throwable {
Object result = cache.get(key);
//key comes from MethodInvocation processing
if (result == null) {
result = mi.proceed();
cache.put(key, result);
}
return result;
}
Пока все хорошо. Я кеширую метод, который возвращает Array
и вызывается так:
List<Object> result = methodWithCaching();
result.add(new Object()); //!
Как вы можете себе представить, строка, помеченная !
, также обновляет экземпляр кэша, а это не то, что мне нужно.
Может кто-нибудь придумать, как остановить это поведение, не изменяя клиента, только перехватчик?