zoukankan      html  css  js  c++  java
  • spring 缓存(spring自带Cache)(入门)

    spring的缓存机制,是方法纬度的缓存机制,

    这就意味着我们并不用关注 底层是否使用了数据库以及通过什么方式访问的数据库;

    因此,此缓存方法既适用于dao层,也适用于service层


    spring配置文件配置:
    <!--缓存配置-->
    <!--启用缓存注解功能-->
    <cache:annotation-driven cache-manager="cacheManager"/>
    <!--spring自己的基于java.util.concurrent.ConcurrentHashMap实现的缓存管理器(该功能是从Spring3.1开始提供)-->
    <bean id="cacheManager" class="org.springframework.cache.support.SimpleCacheManager">
    <property name="caches">
    <set>
          <!-- 此处类concurrentMapCacheFactoryBean的作用是产生 缓存类 实例-->
    <bean name="myCache" class="org.springframework.cache.concurrent.ConcurrentMapCacheFactoryBean"/>
    </set>
    </property>
    </bean>

    service层示例如下:
    @Transactional(readOnly = true)
    @Cacheable(value = "myCache")
    public JsonObject getWFK(JsonObject params){
    OneOb ob = new OneOb();
    try {
    List<Map<String,Object>> map = LawAssistantMapper.getWFK();
    ob.setOb(map);
    }catch (Exception e) {
    e.printStackTrace();
    ob.setCode(500);
    ob.setMsg("服务器错误!!!");
    return new JsonObject(Json.encode(ob));
    }
    ob.setCode(200);
    ob.setMsg("ok");
    logger.debug(Json.encode(ob));
    return new JsonObject(Json.encode(ob));

    }

    由于使用的是spring自带的缓存类,所以,仅仅需要两步:1.在spring配置文件中声明,2.在service层,方法代码前增加注解,即可。


    缺点:
    spring自带的缓存功能,实质上是通过java类来保存缓存的数据,这样会占用一定的内存消耗,并发率越高,对内存的压力越大。
    码民直接使用的缓存类:
    org.springframework.cache.support.SimpleCacheManager,
    org.springframework.cache.concurrent.ConcurrentMapCacheFactoryBean





  • 相关阅读:
    django_视图层_便捷工具
    django_视图层_编写url
    04bootstrap_表单
    人工智能之线性代数
    人工智能之数组操作
    C 获取Linux系统信息
    RPM
    Windows 启动&关闭Hyper-V
    C 指定初始化器
    指针的运算
  • 原文地址:https://www.cnblogs.com/zqsky/p/5867878.html
Copyright © 2011-2022 走看看