使用Spring Cache需要我们做两方面的事:
声明某些方法使用缓存
配置Spring对Cache的支持
和Spring对事务管理的支持一样,Spring对Cache的支持也有基于注解和基于XML配置两种方式。下面我们先来看看基于注解的方式。
1 基于注解的支持
Spring为我们提供了几个注解来支持Spring Cache。其核心主要是@Cacheable和@CacheEvict。使用@Cacheable标记的方法在执行后Spring Cache将缓存其返回结果,而使用@CacheEvict标记的方法会在方法执行前或者执行后移除Spring Cache中的某些元素。下面我们将来详细介绍一下Spring基于注解对Cache的支持所提供的几个注解。
1.1 @Cacheable
@Cacheable可以标记在一个方法上,也可以标记在一个类上。当标记在一个方法上时表示该方法是支持缓存的,当标记在一个类上时则表示该类所有的方法都是支持缓存的。对于一个支持缓存的方法,Spring会在其被调用后将其返回值缓存起来,以保证下次利用同样的参数来执行该方法时可以直接从缓存中获取结果,而不需要再次执行该方法。Spring在缓存方法的返回值时是以键值对进行缓存的,值就是方法的返回结果,至于键的话,Spring又支持两种策略,默认策略和自定义策略,这个稍后会进行说明。需要注意的是当一个支持缓存的方法在对象内部被调用时是不会触发缓存功能的。@Cacheable可以指定三个属性,value、key和condition。
1.1.1 value属性指定Cache名称
value属性是必须指定的,其表示当前方法的返回值是会被缓存在哪个Cache上的,对应Cache的名称。其可以是一个Cache也可以是多个Cache,当需要指定多个Cache时其是一个数组。
@Cacheable("cache1")//Cache是发生在cache1上的
public User find(Integer id) {
returnnull
}
mysql目录下的 my.ini 可以修改 配置max_connections=100表示的是最大连接数
query_cache_size=0 表示查询缓存的大小
table_cache=256 表示表格的缓存
tmp_table_size=18M 表示临时表的缓存
thread_cache_size=8 表示线程的缓存
超时时间可以在连接字符串中写好 下面给出了一个实例
Server=myServerAddressDatabase=myDataBaseUid=myUsernamePwd=myPassworddefault command timeout=20
其他 连接字符串的实例给你一个连接
http://www.cnblogs.com/hcbin/archive/2010/05/04/1727071.html
@Cacheable 是使用缓存的意思主要是在查询的时候使用,
数据量过大时,每次查询数据库,会造成数据库的负担以及相应速度慢 所以如果变动不频繁 就把数据放到缓存中 这样会提高相应的速度 不需要每次都查询数据库
但不是说数据变动了就不能监控到 他也会把变化的数据查询出来 只是有延迟
你这个是直接写的 没有经过数据库 所以他会直接打印出来变化的数据 给你的感觉就是没起作用
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)