问题一:缓存的命中率低。如代码所示,如果getAllObject查询参数是一个VO对象,那么当你用new每次创建的时候,缓存系统都认为不是同一个对象,导致缓存失败,直接从数据库查询;
但是当你用SPRING的载入bean的方式来加载bean的时候,默认方式,没有修改为多态模式,缓存可以找到,但是设置查询条件却没有用了;
那么这样条件下的命中率很低,缓存还有意义吗?
下面的代码是设置缓存的例子:
String DEFAULT_CONTEXT_FILE = "/applicationContext.xml";
ApplicationContext context = new ClassPathXmlApplicationContext(DEFAULT_CONTEXT_FILE);
//SeaBean seaBean = new SeaBean();
TestServiceImpl testService = (TestServiceImpl)context.getBean("testService");
SeaBean seaBean = (SeaBean)context.getBean("pair");
seaBean.setName("LIQF");
//System.out.println("testService.getPaire().getName()===" + testService.getPaire().getName());
//TestServiceImpl testService = new TestServiceImpl();
System.out.println("1--第一次查找并创建cache");
List<SeaBean> restList1 = testService.getAllObject(seaBean);
for(SeaBean seaBeanTem : restList1){
System.out.println("strTem1===" + seaBeanTem.getName());
}
//paire = new com.liqf.other.Paire();
SeaBean seaBean2 = (SeaBean)context.getBean("pair");
seaBean2.setName("LIQF77");
System.out.println("2--在cache中查找");
System.out.println(seaBean2.getName());
List<SeaBean> restList = testService.getAllObject(seaBean2);
for(SeaBean seaBeanTem : restList){
System.out.println("strTem2===" + seaBeanTem.getName());
}
System.out.println("3--remove cache");
testService.updateObject(null);
//System.out.println("4--需要重新查找并创建cache");
List<SeaBean> restList2 = testService.getAllObject(seaBean);
for(SeaBean seaBeanTem : restList2){
System.out.println("strTem3===" + seaBeanTem.getName());
}
分享到:
相关推荐
1.解压缩到目录下,复制ehcache-monitor-kit-1.0.0\lib\ehcache-probe-1.0.0.jar包到application的web-inf/lib目录下 2.将以下配置copy的ehcache.xml文件的ehcache标签中,注:上述链接中说的配置少写了个probe包名...
hibernate+ehcache hibernate+ehcache hibernate+ehcache hibernate+ehcache hibernate+ehcache
ehcache-3.8.1.jar
EhCache
赠送jar包:ehcache-3.9.9.jar; 赠送原API文档:ehcache-3.9.9-javadoc.jar; 赠送源代码:ehcache-3.9.9-sources.jar; 赠送Maven依赖信息文件:ehcache-3.9.9.pom; 包含翻译后的API文档:ehcache-3.9.9-javadoc-...
hibernate ehcache.xml 配置详解
ehcache-2.10.6.jar ehcache jar包供各位开发人员 学习、交流,切勿用于商业用途。
spring3整合EhCache注解实例
ehcache所需的ehcache-core-2.5.2.jar及其源码ehcache-core-2.5.2-sources.jar
EhCache 是一个纯Java的进程内缓存框架,具有快速、精干等特点,是Hibernate中默认的CacheProvider。 Ehcache是一种广泛使用的开源Java分布式缓存。主要面向通用缓存,Java EE和轻量级容器。它具有内存和磁盘存储,...
赠送jar包:ehcache-3.3.1.jar; 赠送原API文档:ehcache-3.3.1-javadoc.jar; 赠送源代码:ehcache-3.3.1-sources.jar; 赠送Maven依赖信息文件:ehcache-3.3.1.pom; 包含翻译后的API文档:ehcache-3.3.1-javadoc-...
EhCache 是一个纯 Java 的进程内缓存框架,具有快速、精干等特点,是 Hibernate 中默认的 CacheProvider。Ehcache 是一种广泛使用的开源 Java 分布式缓存。主要面向通用缓存,Java EE 和轻量级容器。它具有内存和...
ehcache所需jar包 cglib-nodep-2.2.jar ehcache-core-2.5.2.jar ehcache-spring-annotations-1.2.0.jar guava-13.0.1.jar ehcache-terracotta-2.5.2.jar slf4j-api-1.6.1.jar slf4j-log4j12-1.6.1.jar terracotta-...
软件介绍: 已测试有效的ehcache.xsd文件,引入ide中,进行ehcache.xml的代码提示。Windows外壳公用DLL文件,大小23.1KB。
ehcache资料(包含ehcache jar包)
具有集群支持的 Ehcache 3(ehcache-clustered-3.8.1-kit.zip)
ehcache.xml配置内容 <ehcache xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://www.ehcache.org/ehcache.xsd"> eternal="false" maxElementsInMemory="1000...
EHCache_技术文档 EHCache缓存 spring缓存
ehcache的依赖包,使用ehcache缓存机制必备
包含EHCache.jar和EHCache 技术文档.pdf