SpringCache

2020-12-13 03:55

阅读:480

标签:ble   接口   col   ati   repo   conf   rop   property   信息   

1.原理图

技术图片

2.SpringCache缓存实现(此项目是通过mybatis-ssm项目复制得来的)

(1).创建一个spring-cache.xml配置文件

    xmlns:cache="http://www.springframework.org/schema/cache"
       xsi:schemaLocation="http://www.springframework.org/schema/beans 
    http://www.springframework.org/schema/beans/spring-beans.xsd
    http://www.springframework.org/schema/cache
    http://www.springframework.org/schema/cache/spring-cache.xsd">

 (2).如果要想让缓存配置生效。则一定要在spring-base.xml配置文件里面追加配置项

 (3).修改业务层接口。这里以INewsService接口为例

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);
}

3.缓存更新

1.缓存更新用@CachePut注解控制
2.因为每次注解之前都要注解cacheNames="news",也可以在接口上面直接使用@CacheConfig(cacheNames="news")进行了缓存信息的统一配置处理
3.@CachePut(key="#vo.nid",unless="#result==null")
  public News update(News vo);//一定要返回新的News对象实例

4.缓存清除

缓存清除用@CacheEvict
      public boolean delete(long id);

5.多级缓存如果既想保存id的缓存又想保存title的缓存,这样操作的前提是这两个字段都没有重复的数据内容

@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);

6.SpringCache整合EhCache缓存组件

(1).导入依赖包


net.sf.ehcache
    ehcache
    2.10.6

(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


评论


亲,登录后才可以留言!