Aspect-Cache-Plug

基于方法的切片缓存插件
授权协议 未知
开发语言 Java
所属分类 服务器软件、 缓存服务器
软件类型 开源软件
地区 国产
投 递 者 耿学义
操作系统 跨平台
开源组织
适用人群 未知
 软件概览

Aspect-Cache-Plug,基于方法的切片缓存插件。

先介绍缓存使用下场景:

对同一请求(针对不同请求参数)进行缓存,可以减少服务器压力、加快响应速度

查询接口:根据请求条件对返回结果进行缓存
更新接口:根据条件对指定缓存进行清除

@Aspect(key = "query")
public Object query(String q) {
  // do something
  return null;
}
@Aspect(key = "update")
public Object update(String q) {
  // do something  
  return null;
}

缓存query方法返回值

<bean class="com.aspect.config.CacheConfig">
    <property name="key" value="query"/>
    <property name="space" value="space2"/>
    <property name="keyExpression">
        <value>this[0]+new java.util.Date()</value>
    </property>                 
    <property name="timeout" value="60"/>
</bean>

执行update时清除query的返回结果

<bean class="com.aspect.config.ClearConfig">
    <property name="key" value="update"/>    
    <property name="cachedConfigs">
        <list>
            <value>query</value>
        </list>
    </property>
</bean>

加入spring支持

<aop:config> 
        <aop:pointcut id="adviceAspectPoint" expression="execution(* com.sample..*.*(..)) and @annotation(Aspect)" /> 
        <aop:aspect ref="adviceAspect"> 
            <aop:around method="execute" pointcut-ref="adviceAspectPoint" arg-names="Aspect" />
        </aop:aspect> 
    </aop:config>

    <bean id="adviceAspect" class="com.aspect.AdviceAspect">
        <property name="rootKey" value="aspect.cache."/>
        <property name="cache" ref="cache"/>
        <property name="caches">
            <list>
                <bean class="com.aspect.config.CacheConfig">
                    <property name="key" value="queryMethod1"/>
                    <property name="space" value="space1"/>
                    <property name="keyExpression">
                        <value>this[1]+"."+this[2]</value>
                    </property>
                    <property name="domainExpression">
                        <value>this[0]</value>
                    </property>
                    <property name="timeout" value="60"/>
                </bean>
                <bean class="com.aspect.config.CacheConfig">
                    <property name="key" value="queryMethod2"/>
                    <property name="space" value="space1"/>
                    <property name="keyExpression">
                        <value>this[0]</value>
                    </property>                 
                    <property name="timeout" value="60"/>
                </bean>
                <bean class="com.aspect.config.CacheConfig">
                    <property name="key" value="space2QueryMethod1"/>
                    <property name="space" value="space2"/>
                    <property name="keyExpression">
                        <value>this[0]+new java.util.Date()</value>
                    </property>                 
                    <property name="timeout" value="60"/>
                </bean>
            </list>
        </property>
        <property name="clears">
            <list>
                <bean class="com.aspect.config.ClearConfig">
                    <property name="key" value="updateMethod1"/>
                    <property name="domainExpression">
                        <value>this[0]</value>
                    </property>
                    <property name="cachedConfigs">
                        <list>
                            <value>queryMethod1</value>
                            <value>space2QueryMethod1</value>
                        </list>
                    </property>
                </bean>
            </list>
        </property>
    </bean>
  • 来源于 http://www.electrictoolbox.com/jquery-superfish-menus-plugin/# The Superfish jQuery plug-in creates Suckerfish style flyout menus from HTML unordered lists and is very easy to use. It can work ent

  • Engineering Costin Leau February 23, 2011 One of the major features added in Spring Framework 3.1 M1 is the generic cache abstraction for transparently applying caching to Spring applications. Just li

 相关资料
  • swoole框架目前支持5种Cache适配器,可以配置apps/configs/cache.php的type来设定不同类型的Cache Memcache 使用memcache缓存数据,配置示例: $cache['master'] = array( 'type' => 'Memcache', 'use_memcached' => true, //使用memcached扩展 '

  • 本文向大家介绍PHP基于文件存储实现缓存的方法,包括了PHP基于文件存储实现缓存的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了PHP基于文件存储实现缓存的方法。分享给大家供大家参考。具体如下: 在一些数据库数据记录较大,但是服务器有限的时候,可能一条MySQL查询就会好几百毫秒,一个简单的页面一般也有十几条查询,这个时候也个页面加载下来基本要好几秒了,如果并发量高的话服务器基本就瘫

  • 本文向大家介绍C# Cache缓存读取的设置方法,包括了C# Cache缓存读取的设置方法的使用技巧和注意事项,需要的朋友参考一下 先创建一个CacheHelper.cs类,代码如下: 然后是调用:  测试结果: 首次加载进来是为null,然后读取数据库,添加进缓存,当前返回前台的是从数据库中取出的数据。 刷新页面,发现缓存中已经有了读出的30条数据, 然后接下来走,返回缓存中的数据: 以上就是C

  • 1、使用 Ehcache 缓存 ActiveRecord 可以使用缓存以大大提高性能,默认的缓存实现是 ehcache,使用时需要引入 ehcache 的 jar 包及其配置文件,以下代码是Cache使用示例: public void list() { List<Blog> blogList = Blog.dao.findByCache("cacheName", "key", "selec

  • 本文向大家介绍基于spring 方法级缓存的多种实现,包括了基于spring 方法级缓存的多种实现的使用技巧和注意事项,需要的朋友参考一下 方案实施 1、 spring和ehcache集成 主要获取ehcache作为操作ehcache的对象。 spring.xml中注入ehcacheManager和ehCache对象,ehcacheManager是需要加载ehcache.xml配置信息,创建ehc

  • 试图找出一种方法来分割pandas/numpy矩阵中非连续和非等长的行,以便将这些值设置为公共值。有没有人想出一个优雅的解决方案? 我要寻找的是一种基于y行有效选择不同长度x切片的方法