0%

Spring缓存注解@Cacheable @CacheEvict @CachePut的区别和使用

Spring缓存注解@Cacheable @CacheEvict @CachePut的区别和使用

启动类注解:

@EnableCaching

方法上的注解:

@CacheEvict---------------------
@Caching(
        evict = {
                @CacheEvict(cacheNames = "listUmsOrgByUserNo", allEntries = true),
                @CacheEvict(cacheNames = "all-resource-byuser", allEntries = true),
                @CacheEvict(cacheNames = "all-role-byuser", allEntries = true),
                @CacheEvict(cacheNames = "all-user-byrole", allEntries = true)
        }
)
@Override
public int deleteUmsUserOrgRelate(String id) {
    return mapper.deleteUmsUserOrgRelate(id);
}


Cacheable---------------------
@Override
@Cacheable(cacheNames = "user-tree", key = "#systemNo+#orgNo+#range")
public List<HashMap> listUserTree(String systemNo, String orgNo, String range, String isPrimary) {
    return mapper.getUserTrees(systemNo, orgNo, range, isPrimary);
}

Cacheable---------------------
@Cacheable(cacheNames = "user", key = "#userNo")
@Override
public UmsUser getUmsUserByNo(String userNo) {
    return mapper.getUmsUserByNo(userNo);
}


@CacheEvict(key = “123”)该注解表示要清除123这个key,作用域可以在类上面@CacheConfig(cacheNames = “product”)声明也可以在方法上面这样声明@CacheEvict(cacheNames = “product”,key = “123”)

@CachePut(cacheNames = “product”,key = “123”)表示对123这个key进行更新。
————————————————
版权声明:本文为CSDN博主「buchicaodetuzi」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_42404323/article/details/94722161

SpringBus

@Bean(name = Bus.DEFAULT_BUS_ID)
public SpringBus springBus() {
    return new SpringBus();
}