我也要使用其它的CACHE来放一些定制的对象。
感觉OSCACHE也不错。当然JBOSSCACHE可以用来集群的环境。但是,我现在有一些字典表。这些想省些代码。
直接利用SPRING把这些对象放进去,
应该是一查这些字典spring 就从中间偷偷地换成它的方法。
然后,不再去查hibernate了。网上写这个文章的没有1000也有800了。但是我真要弄的时候,就碰上了这么个问题。我真的好郁闷呀。我的类和网上写的完全一样,现在的问题是,其本spring就不能进行截获方法。和我没写CACHE一样,
感觉OSCACHE也不错。当然JBOSSCACHE可以用来集群的环境。但是,我现在有一些字典表。这些想省些代码。
直接利用SPRING把这些对象放进去,
应该是一查这些字典spring 就从中间偷偷地换成它的方法。
然后,不再去查hibernate了。网上写这个文章的没有1000也有800了。但是我真要弄的时候,就碰上了这么个问题。我真的好郁闷呀。我的类和网上写的完全一样,现在的问题是,其本spring就不能进行截获方法。和我没写CACHE一样,
是写在XML里面的吧,
我以前也试过一回这样的,
发现hibernate 还在查数据库,
因为打出来的SQL没有减少呀。
惭愧~~~~
是不是表的hbm.xml文件里面写的有问题,要么包的版本?胡乱猜测一下
把APO的那部分配置发上来偶看看嘛,其实如果是代理的话,
那都是差不多的。我现在不使用AOP方式,用OSCACHE 的硬放进去,
是没有问题的。longququ()
这种方法代理的方式如果成功了,
根本就不进hibernate .
原理就是,只要spring一调 <property name="target">
<bean class="com.base.service.Impl.TdCityManagerImpl"/>
</property>
那么spring就把这个类的代理调出来,
因为他的方法被你的CACHE所匹配,所以直接就返回,CACHE里的内容了。
如果写在HBM,那还是hibernate的一级CACHE,
还有load lazy 的麻烦。
不是不更新,就是更新的不是时候,
感觉总是不爽。代理的方式,和在代码里写上一个头是差不多的。
相当于。在你的方法前面。
加上了,匹配的代码。如果缓存里存在。
String cacheKey = getCacheKey(targetName, methodName, arguments);
Element element = cache.get(cacheKey);
if (element == null) {
// call target/sub-interceptor
result = invocation.proceed();
直接返回缓冲的结果了。
根本就走不到hibernate 里面的
所以用OSCACHE应该也是一样的。
我调用的还是事务管理的类。
这里我就晕了。
我想把事务管理里面的类的方法要CACHE了。我要怎么调用呢??