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





  • 相关阅读:
    JavaScript:Number 对象
    JavaScript:Math 对象
    杂项:引用资源列表
    小团队管理与大团队管理
    技术转管理
    【翻译+整理】.NET Core的介绍
    自己开发给自己用的个人知识管理工具【脑细胞】,源码提供
    关于【自证清白】
    这篇博客能让你戒烟——用程序员的思维来戒烟!
    如果我是博客园的产品经理【下】
  • 原文地址:https://www.cnblogs.com/zqsky/p/5867878.html
Copyright © 2011-2022 走看看