springboot项目如何把数据加入缓存中(用@Cacheable注解)

PS:如有问题,评论留言。

先引入依赖

<dependency>

<groupId>org.springframework.boot</groupId>

<artifactId>spring-boot-starter-cache</artifactId>

</dependency>

激活启动类注解@EnableCaching

实现类相应方法上加上这个注解

@Service

public class ImsSysClientServiceImpl implements ImsSysClientService {
@Resource
ImsSysClientMapper imsSysClientMapper;


@Cacheable(value = "client", key = "#id", unless = "#result == null")
public ImsSysClient selectByPrimaryKey(Integer id) {
return imsSysClientMapper.selectByPrimaryKey(id);
}
controller层测试代码
public void test(){
System.out.println("test");
ImsSysClient client1=imsSysClientService.selectByPrimaryKey(1);
System.out.println(client1);
ImsSysClient client2=imsSysClientService.selectByPrimaryKey(1);
System.out.println(client2);


}
默认用redis缓存

如果不想用redis缓存,只是把它放内存中。(在serviceImpl里面加入下面这个管理器)
 @Bean
    public CacheManager cacheManager() {
        SimpleCacheManager cacheManager = new SimpleCacheManager();
        cacheManager.setCaches(Arrays.asList(new ConcurrentMapCache("client"),new ConcurrentMapCache("clientId"),new ConcurrentMapCache("jwtinfo")));
        cacheManager.afterPropertiesSet();
        return cacheManager;
    }
}
如果配了多个不同名字的缓存注解,在红线部分把名字配上去。不过这个管理器不能放在单独的文件中,否则又会使用redis缓存。(我也不知道为什么)


posted @ 2020-07-29 10:26  下饭  阅读(3785)  评论(0编辑  收藏  举报