SpringCache
2020-12-13 03:55
标签:ble 接口 col ati repo conf rop property 信息 1.原理图 2.SpringCache缓存实现(此项目是通过mybatis-ssm项目复制得来的) (1).创建一个spring-cache.xml配置文件 (2).如果要想让缓存配置生效。则一定要在spring-base.xml配置文件里面追加配置项 (3).修改业务层接口。这里以INewsService接口为例 3.缓存更新 4.缓存清除 5.多级缓存如果既想保存id的缓存又想保存title的缓存,这样操作的前提是这两个字段都没有重复的数据内容 6.SpringCache整合EhCache缓存组件 (1).导入依赖包 (2).在"src/main/resources/"目录下创建一个ehache.xml配置文件 (3).如果想使用ehcache缓存组件买就必须在spring-cache.xml配置文件中进行缓存的相关定义 SpringCache 标签:ble 接口 col ati repo conf rop property 信息 原文地址:https://www.cnblogs.com/wxl123/p/11094644.html
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/cache
http://www.springframework.org/schema/cache/spring-cache.xsd">
public interface INewsService{//下面的news就是上面的那个"id="news""
@Cacheable(cacheNames="news")//调用此方法就会触发id缓存
public News get(long id);或
@Cacheable(cacheNames = "news",condition = "#id//调用此方法id10则不再触发缓存
public News get(long id) ; @Cacheable(cacheNames = "news",key = "#id")//调用此方法就会触发id缓存,如果不声明key,则默认为当id和title同时输入时才会触发
public News get(long id,String title);
@Cacheable(cacheNames = "news",key = "#id",sync = true)//"sync"为同步标记,此时由于配置了"sync"属性,所以在进行并发访问的时候只会由一个线程负责缓存数据的添加
public News get(long id,String title);
}
1.缓存更新用@CachePut注解控制
2.因为每次注解之前都要注解cacheNames="news",也可以在接口上面直接使用@CacheConfig(cacheNames="news")进行了缓存信息的统一配置处理
3.@CachePut(key="#vo.nid",unless="#result==null")
public News update(News vo);//一定要返回新的News对象实例缓存清除用@CacheEvict
public boolean delete(long id);
@Cacheable(unless="#result==null")
public News get(long id);
@Cacheable(unless="#result==null")
public News get(String title);
修改两个参数的get()方法定义,在此操作之中使用多级缓存设置(当前的操作表示对id和title都进行缓存设置):
@Cacheable(cacheable={
@Cacheable(key="#id"), @Cacheable(key="#title") })
public News get(long id,String title);
在进行缓存更新的时候也可以使用多级缓存设置
@Cacheable(put={
@Cacheput(key="#vo.nid",unless="#result==null")
@Cacheput(key="#vo.title",unless="#result==null")
})
public News update(News vo);
辅导班