@Cacheable
注解表示这个方法有了缓存功能,方法的返回值就会被缓存下来,下一次调用该方法之前会去检查缓存中是否有值,如果有值就直接返回,不再调用此方法了。如果缓存中没有值才会调用此方法,并将结果缓存起来
@Cacheable(value = "user",key = "#userId") public UserInfo queryById(Long userId) { //从数据库查询 UserInfo user = new UserInfo(); user.setId(userId); user.setNickname("john"); return user; }
@CachePut
不提供查询功能,加了@CachePut注解的方法会把此方法的返回值put到缓存里缓存起来,以便使其他地方使用
@CacheEvict
使用了@CacheEvict直接的方法会清空指定的缓存
@CacheEvict(value = "user",key = "#userId") public void update(Long userId) { //修改用户 UserInfo user = new UserInfo(); user.setId(userId); user.setNickname("john"); }
@Caching
Java代码中同一个方法只能配置一个相同的注解配置,若想操作多个缓存可以使用@Caching
想要使用此注解需要在启动类上加上@EnableCaching
@SpringBootApplication
@EnableCaching //开启缓存
public class DemoApplication{
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
}