配置步骤很简单,大概分为:
1、导入jar包 (oscache-2.4.1.jar ) ,项目用的框架为:Spring 3 + Struts 2 + MyBatis 3 ,所以还有好像是(commons-logging-1.1.1.jar ,log4j-1.2.17.jar要导入,这个在我项目中已经有了)。
2、导入mybatis-oscache-1.0.1.jar包,这个包apache官网有,google搜关键词吧!!
3、jar包导入完毕,配置oscache配置文件,将oscache.properties 导入到项目类路径,这个配置文件在oscache的zip文件中有
3、配置oscache.properties ,使用内存存放缓存数据
cache.memory=true
cache.algorithm=com.opensymphony.oscache.base.algorithm.LRUCache
cache.capacity=1000
只要找到相应的配置,打开注释就可以了,解释说明:
① 使用内存缓存
②使用LRUCache算法,如果你已经打开了③,②可以不打开,因为如果配置了缓存的大小size(相当于hashmap的size),就默认使用LRUCache
③配置缓存大小(个数)
4、一切ok,那么找到要使用的类的mapper文件, StoreMapper.xml , 在配置文件中加入
<!-- 为store类配置OSCache缓存 -->
<cache type="org.mybatis.caches.oscache.OSCache"/>
5、到此位置,配置在 StoreMapper.xml 的所有查询都使用到了缓存
或许你又疑问,我怎么知道用到了缓存?
6、这时你要配置log4j.xml---个人之见
打印出所有的类:
log4j.xml配置如下:(在控制台上打印,当然你可以打印到文件或者数据库)
log4j.rootLogger=info,stdout
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %p [%c] - - %M- - <%m>%n
7、在action中查询出store类
//查询数据库
//查询数据库
List<Store> stores = storeService.selectAll(model);
for(Store store: stores){
log.info("这是我的store类:" + store);
}
可以看到打印效果:
com.***.***.domain.Store@63f3f884
com.***.***.domain.Store@5b1630fa
..........
然后再次查询,你会看到再次打印出来的效果:
com.***.***.domain.Store@63f3f884
com.***.***.domain.Store@5b1630fa
..........
还是一样的,后面的编码没有变化,如果不加那个配置,每次查询,编码都会发生变化
到此,配置成功!!!!!
一个问题我还在找:就是没法讲缓存加到一个方法里面,这种配置只是针对于一个 mapper里面的所有方法
希望有答案的大神可以指点指点,呵呵