ciao!
sto facendo qualche test sul caching in spring boot.
ho aggiunto queste dipendenze:
ho attivato il caching:codice:<dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>6.2.3</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context-support</artifactId> <version>6.2.3</version> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-cache</artifactId> <version>3.3.2</version> </dependency>
ho creato un model che poi rappresenterà la mia tabella:codice:@SpringBootApplication @EnableCaching public class TestSpringbootJavaApplication { public static void main(String[] args) { SpringApplication.run(TestSpringbootJavaApplication.class, args); } }
ho creato un service che poi farà una query sul db:codice:@Getter @Setter @AllArgsConstructor public class Persona { private Long id; private String email; }
ecco, qui vorrei capire.codice:@Service public class PersonaService { @Cacheable(value = "persone", key = "#id") public Persona getById(Long id) { // DO STUFF CacheManager cacheManager = new SimpleCacheManager(); Cache cache = cacheManager.getCache("persone"); return new Persona(id, "email@email.it"); } }
l'eventuale controllo che i dati siano in cache li fai la libreria in autonomia?
come faccio eventualmente a controllare che ci sia già qualcosa in cache?
per completezza il controller:
codice:@RestController @RequestMapping(path = "/test") public class TestController { @Autowired PersonaService service; @GetMapping(path = "/", produces = MediaType.APPLICATION_JSON_VALUE) @ResponseStatus(HttpStatus.OK) public String index() { Persona persona = service.getById(10L); JSONObject obj = new JSONObject(); obj.put(persona.getId(), persona.getEmail()); return String.valueOf(obj); } }

Rispondi quotando
