`@Cacheable` zapisuje wynik wywołania metody pod kluczem (zwykle z argumentów). Jest realizowane przez proxy/AOP. Typowe pułapki: self-invocation omija proxy (cache nie zadziała) oraz ryzyko “starych” danych, jeśli nie robisz invalidacji (`@CacheEvict`) lub TTL po stronie dostawcy cache.