
Originariamente inviata da
andbin
No, non funziona così il caching in Spring. Spring crea un "proxy" che intercetta le chiamate al tuo service. Quando altrove fai un @Autowired del tuo PersonaService, non inietti direttamente la istanza del tuo service, ma inietti il proxy!
La logica del proxy per quel metodo @Cacheable è semplice: l'oggetto è già in cache per quella certa chiave?
No -> allora chiama il tuo getById reale e poi mette in cache il risultato prima di restituirlo.
Sì -> allora restituisce direttamente l'oggetto cachato e NON invoca più il tuo getById reale.