1、主启动类加@EnableCaching开启缓存功能
@SpringBootApplication
@MapperScan("com.neuedu.demo.mapper")
@EnableCaching
public class DemoApplication {
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
}
2、service类上统一指定缓存名称
@CacheConfig(cacheNames="UserService")
3、查询的方法上加@Cacheable注解,表示需要缓存查询结果
@Cacheable(key="#root.methodName+#root.args[0]")
public User getUserById(int id){
return mapper.getUserByID(id);
}
4、在添加、修改、删除的方法上加@CacheEvict,通知更新缓存
@CacheEvict(allEntries=true)
public int delById(int id){
return mapper.delById(id);
}
今后:第一次查询时,会调用mapper,第二次 直接返回结果
如果有添加、删除、修改的操作时,会删除缓存,之后的第一次查询还会再走一遍mapper
总体是减少了查询数据库的次数,提升了性能,降低了数据库压力