用过memcached起缓存服务,  但不明白你说 用aop在dao层做缓存具体是怎么实现.按我的理解, 不同数据(对应不同类的不同方法)需要唯一key,  aop invoke 之前你怎么知道上层service需要查询的数据key是什么?
难道要为每个切入的方法做个单独的前置通知, 查询特定key后返回?

解决方案 »

  1.   

    在Dao层进行AOP管理类似 
         @ReadThroughSingleCache(namespace = NAMESPACE, expiration = 3600)
        public User getUserInfo(@ParameterValueKeyProvider int userId) {
            System.out.println("cache not hit");
            return getSqlSession().selectOne("User.getUser", userId);
        }
      

  2.   


    这个是simple-spring-memcached吧, 没用过, 不过看上去挺好的,  namespace 跟 key 对于注解处理器都是可知的,  还以为你要自己用aop实现冒昧问下,复杂点能实现么?  比如你这个方法, 如果要求只缓存userId=1的数据能做到么? 类似场景可能会很常见
      

  3.   

    我也是再做测试的时候用到这个工具的你说的需求 用
    @ReadThroughAssignCache这个可以做到,可以用来只取得某个KEY的内容