- 浏览: 90644 次
- 性别:
- 来自: 广州
文章分类
- 全部博客 (90)
- spring mvc (7)
- hudson(持续集成引擎) (1)
- jquery (5)
- mongodb (2)
- httpclient (1)
- spring3.1 (4)
- hibernate4.1 (6)
- tomcat;database; (1)
- mysql;存储引擎; (1)
- dwr (1)
- httpsession (2)
- symbian (1)
- lighttpd (3)
- nginx (3)
- apache (2)
- 链表 (1)
- jetty (2)
- Redis (1)
- memcached (1)
- squid (1)
- 反向代理 (1)
- 360doc (1)
- struts2 (2)
- mail (1)
- annotation (2)
- captcha (1)
- ehcache (2)
- ThreadPoolTaskExecutor (1)
- json (2)
- tomcat (3)
- cookie (1)
- session (1)
- 面试 (3)
- hadoop (3)
- JDK (1)
- 内存 (1)
- hibernate二级缓存 (1)
- hadoop mapreduce (1)
- linux (2)
- spring security (2)
- http (2)
- excel (1)
- unix (1)
- compass (1)
- lucene (1)
- kindeditor (1)
- C++ (1)
- java (1)
- cas (1)
- eclipse (2)
- olap (1)
- oltp (1)
- Git (1)
- BI (1)
- lago (1)
- 存储过程 (2)
- 书本 (1)
- VMware虚拟机 (1)
- 网络技术 (1)
- 登陆 (1)
- SapphireCache (1)
- ssl (1)
- webservice (1)
- RPC (1)
- 连接池 (1)
- google api (1)
- oracle (1)
- javascript (1)
- mysql (1)
- 离线文件 (0)
- 多线程 (0)
最新评论
-
davinsam:
import org.mysterylab.utopiafra ...
hibernate dao -
davinsam:
dao类使用说明弄错了,怎么跟basehibernatedao ...
hibernate dao -
like_shadows:
真不错,顶
mongodb基本知识
[size=large]
@TriggerRemove
@TriggersRemove 可以理解为数据库的触发器的作用
http://code.google.com/p/ehcache-spring-annotations/wiki/UsingTriggersRemove
使用ehcache-spring-annotations开启ehcache的注解功能
http://blog.csdn.net/glarystar/article/details/6637962
Spring 3.0.5的,更细颗粒化的缓存设置,更方便的注解,可以具体到把每个方式的返回值做缓存, 需要 ehcache-spring-annotations-1.1.x。
下载地址是:http://code.google.com/p/ehcache-spring-annotations
首先,applicationContext.xml
Xml代码
1.
其次,src下的ehcache.xml
Xml代码
1.
DAO层缓存:例如下边这个方法的返回值需要缓存:
@SuppressWarnings("unchecked")
//spring 3 基于注解ehcache缓存配置;
@Cacheable(cacheName="departCache") 加上这句话,其中cacheName 对应ehcache.xml 中的<cache name="departCache"
这样这个方法返回值就可以被缓存起来的了,但是怎么样把缓存数据和数据库中的数据实现同步呢?
如果对这个PO做update ,save,delete 可以实现这样策略如下:
@Transactional(propagation = Propagation.REQUIRED)
//设定spring的ecache缓存策略,当编辑机构时候,把缓存全部清除掉,以达到缓存那数据同步;
使用 @Cacheable
<!-- spring配置文件 -->
spring用注解的方式使用ehcache方法
spring用注解的方式使用ehcache网上大多数介绍的方法是spring-modules的方法,现在spring-modules已经不再更新了,下面介绍一个比较好的开源软件:ehcache-spring-annotations。网站主页:http://code.google.com/p/ehcache-spring-annotations/。使用方法如下:
1、ehcache.xml
2、spring的bean配置:
3、在使用的方法前面加上 @Cacheable(cacheName=”reportCache”):
注意:如果使用的参数是对象,那么需要重载这个对象的hashCode和equals方法,或者使用@Cacheable(cacheName=”weatherCache”, keyGenerator=@KeyGenerator(name=”StringCacheKeyGenerator”))进行注解。
keyGenerator参数有几种:HashCodeCacheKeyGenerator(默认值)、StringCacheKeyGenerator、ListCacheKeyGenerator、MessageDigestCacheKeyGenerator,具体参考http://code.google.com/p/ehcache-spring-annotations/wiki/CacheKeyGenerators。</p>
http://2018live.com/archives/164
[/size]
@TriggerRemove
Required Element Summary cacheName Optional Element Summary keyGenerator keyGeneratorName removeAll @TriggersRemove(cacheName = "sysCache", when = When.AFTER_METHOD_INVOCATION, removeAll = true) @TriggersRemove - which can be applied to methods in order to trigger removal of a single element or optionally of all elements from one or more caches
@TriggersRemove 可以理解为数据库的触发器的作用
http://code.google.com/p/ehcache-spring-annotations/wiki/UsingTriggersRemove
使用ehcache-spring-annotations开启ehcache的注解功能
http://blog.csdn.net/glarystar/article/details/6637962
Spring 3.0.5的,更细颗粒化的缓存设置,更方便的注解,可以具体到把每个方式的返回值做缓存, 需要 ehcache-spring-annotations-1.1.x。
下载地址是:http://code.google.com/p/ehcache-spring-annotations
首先,applicationContext.xml
Xml代码
1.
<beans xmlns="http://www.springframework.org/schema/beans" 2. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 3. xmlns:aop="http://www.springframework.org/schema/aop" 4. xmlns:context="http://www.springframework.org/schema/context" 5. xmlns:p="http://www.springframework.org/schema/p" 6. xmlns:tx="http://www.springframework.org/schema/tx" 7. xmlns:ehcache="http://ehcache-spring-annotations.googlecode.com/svn/schema/ehcache-spring" 8. xsi:schemaLocation="http://www.springframework.org/schema/beans 9. http://www.springframework.org/schema/beans/spring-beans.xsd 10. http://www.springframework.org/schema/aop 11. http://www.springframework.org/schema/aop/spring-aop-3.0.xsd 12. http://www.springframework.org/schema/context 13. http://www.springframework.org/schema/context/spring-context-3.0.xsd 14. http://www.springframework.org/schema/tx 15. http://www.springframework.org/schema/tx/spring-tx-3.0.xsd 16. http://ehcache-spring-annotations.googlecode.com/svn/schema/ehcache-spring 17. http://ehcache-spring-annotations.googlecode.com/svn/schema/ehcache-spring/ehcache-spring-1.1.xsd"> 18. 19. <ehcache:annotation-driven cache-manager="ehCacheManager" /> 20. 21. <bean id="ehCacheManager" class="org.springframework.cache.ehcache.EhCacheManagerFactoryBean"> 22. <property name="configLocation" value="classpath:ehcache.xml" /> 23. </bean>
其次,src下的ehcache.xml
Xml代码
1.
<?xml version="1.0" encoding="UTF-8"?> 2. <ehcache xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 3. xsi:noNamespaceSchemaLocation="http://ehcache.org/ehcache.xsd" 4. updateCheck="false"> 5. <diskStore path="java.io.tmpdir" /> 6. <defaultCache eternal="false" 7. maxElementsInMemory="1000" 8. overflowToDisk="false" 9. diskPersistent="false" 10. timeToIdleSeconds="0" 11. timeToLiveSeconds="600" 12. memoryStoreEvictionPolicy="LRU" /> 13. 14. <cache name="departCache" 15. eternal="false" 16. maxElementsInMemory="100" 17. overflowToDisk="false" 18. diskPersistent="false" 19. timeToIdleSeconds="0" 20. timeToLiveSeconds="300" 21. memoryStoreEvictionPolicy="LRU" /> 22. 23. </ehcache>
DAO层缓存:例如下边这个方法的返回值需要缓存:
@SuppressWarnings("unchecked")
//spring 3 基于注解ehcache缓存配置;
@Cacheable(cacheName="departCache") public List<AppDepart> getChildDepart(Integer id) throws Exception { return this.getHibernateTemplate().find("from AppDepart where state=1 and idParent="+id); }
@Cacheable(cacheName="departCache") 加上这句话,其中cacheName 对应ehcache.xml 中的<cache name="departCache"
这样这个方法返回值就可以被缓存起来的了,但是怎么样把缓存数据和数据库中的数据实现同步呢?
如果对这个PO做update ,save,delete 可以实现这样策略如下:
@Transactional(propagation = Propagation.REQUIRED)
//设定spring的ecache缓存策略,当编辑机构时候,把缓存全部清除掉,以达到缓存那数据同步;
@TriggersRemove(cacheName="departCache",removeAll=true) public boolean editDepart(String depno, String depName) { boolean flag = false; try { AppDepart depart = departDao.getAppdepart(depno); depart.setDepName(depName); departDao.update(depart); flag = true; } catch (Exception e) { e.printStackTrace(); } return flag; }
使用 @Cacheable
public interface WeatherDao { public Weather getWeather(String zipCode); public List<Location>findLocations(String locationSearch); } public class DefaultWeatherDao implements WeatherDao { @Cacheable(cacheName="weatherCache") public Weather getWeather(String zipCode) { //Some Code } @Cacheable(cacheName="locationSearchCache") public List<Location> findLocations(String locationSearch){ //Some Code } }
<!-- spring配置文件 -->
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ehcache="http://ehcache-spring-annotations.googlecode.com/svn/schema/ehcache-spring" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd http://ehcache-spring-annotations.googlecode.com/svn/schema/ehcache-spring http://ehcache-spring-annotations.googlecode.com/svn/schema/ehcache-spring/ehcache-spring-1.1.xsd"> <ehcache:annotation-driven cache-manager="ehCacheManager" /> <bean id="ehCacheManager" class="org.springframework.cache.ehcache.EhCacheManagerFactoryBean" /> <bean id="weatherDao" class="x.y.service.DefaultWeatherDao" /> </beans> <?xml version="1.0" encoding="UTF-8"?> <ehcache xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://ehcache.org/ehcache.xsd" updateCheck="false"> <!-- | Please see http://ehcache.sourceforge.net/documentation/configuration.html for | detailed information on how to configurigure caches in this file +--> <!-- Location of persistent caches on disk --> <diskStore path="java.io.tmpdir/EhCacheSpringAnnotationsExampleApp" /> <defaultCache eternal="false" maxElementsInMemory="1000" overflowToDisk="false" diskPersistent="false" timeToIdleSeconds="0" timeToLiveSeconds="600" memoryStoreEvictionPolicy="LRU"/> <cache name="weatherCache" eternal="false" maxElementsInMemory="100" overflowToDisk="false" diskPersistent="false" timeToIdleSeconds="0" timeToLiveSeconds="300" memoryStoreEvictionPolicy="LRU" /> <cache name="locationSearchCache" eternal="false" maxElementsInMemory="100" overflowToDisk="false" diskPersistent="false" timeToIdleSeconds="0" timeToLiveSeconds="300" memoryStoreEvictionPolicy="LRU" /> </ehcache> 表1. <ehcache:annotation-driven/> 设置 Attribute Default Description cache-manager cacheManager The bean name of the CacheManager that is to be used to drive caching. This attribute is not required, and only needs to be specified explicitly if the bean name of the desired CacheManager is not 'cacheManager'. create-missing-caches false Should cache names from @Cacheable annotations that don't exist in the CacheManager be created based on the default cache or should an exception be thrown? default-cache-key-generator Not Set Default CacheKeyGenerator implementation to use. If not specified HashCodeCacheKeyGenerator will be used as the default. self-populating-cache-scope shared Are the SelfPopulatingCache wrappers scoped to the method or are they shared among all methods using each self populating cache. proxy-target-class false Applies to proxy mode only. Controls what type of caching proxies are created for classes annotated with the@Cacheable annotation. If the proxy-target-class attribute is set to true, then class-based proxies are created. If proxy-target-class is false or if the attribute is omitted, then standard JDK interface-based proxies are created. (See Spring Reference Section 7.6, “Proxying mechanisms” for a detailed examination of the different proxy types.) order Ordered.LOWEST_PRECEDENCE Defines the order of the caching advice that is applied to beans annotated with @Cacheable. (For more information about the rules related to ordering of AOP advice, see Spring Reference Section 7.2.4.7, “Advice ordering”.) No specified ordering means that the AOP subsystem determines the order of the advice. @Cacheable设置 Property Type Description cacheName String Required name of the cache to use selfPopulating boolean Optional if the method should have self-populating semantics. This results in calls to the annotated method to be made within a EhCache CacheEntryFactory. This is useful for expensive shared resources that should be retrieved a minimal number of times. keyGenerator @KeyGenerator Optional inline configuration of a CacheKeyGenerator to use for generating cache keys for this method. keyGeneratorName String Optional bean name of a CacheKeyGenerator to use for generating cache keys for this method. exceptionCacheName String Optional name of the cache to use for caching exceptions. If not specified exceptions result in nothing being cached. If specified the thrown exception is stored in the cache for the generated key and re-thrown for subsequent method calls as long as it remains in the exception cache.
spring用注解的方式使用ehcache方法
spring用注解的方式使用ehcache网上大多数介绍的方法是spring-modules的方法,现在spring-modules已经不再更新了,下面介绍一个比较好的开源软件:ehcache-spring-annotations。网站主页:http://code.google.com/p/ehcache-spring-annotations/。使用方法如下:
1、ehcache.xml
<?xml version=”1.0″ encoding=”UTF-8″?> <ehcache xmlns:xsi=”http://www.w3.org/2001/XMLSchema-instance” xsi:noNamespaceSchemaLocation=”ehcache.xsd” updateCheck=”true” monitoring=”autodetect”> <diskStore path=”java.io.tmpdir/wimsweb/ehcache” /> <defaultCache maxElementsInMemory=”10000″ eternal=”false” timeToIdleSeconds=”120″ timeToLiveSeconds=”120″ overflowToDisk=”false” diskSpoolBufferSizeMB=”30″ maxElementsOnDisk=”10000000″ diskPersistent=”false” diskExpiryThreadIntervalSeconds=”120″ memoryStoreEvictionPolicy=”LRU” /> <cache name=”reportCache” maxElementsInMemory=”1000″ eternal=”true” overflowToDisk=”true” /> </ehcache>
2、spring的bean配置:
<?xml version=”1.0″ encoding=”UTF-8″?> <beans xmlns=”http://www.springframework.org/schema/beans” xmlns:xsi=”http://www.w3.org/2001/XMLSchema-instance” xmlns:ehcache=”http://ehcache-spring-annotations.googlecode.com/svn/schema/ehcache-spring” xsi:schemaLocation=” http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd http://ehcache-spring-annotations.googlecode.com/svn/schema/ehcache-spring http://ehcache-spring-annotations.googlecode.com/svn/schema/ehcache-spring/ehcache-spring-1.1.xsd”></p> <ehcache:annotation-driven cache-manager=”cacheManager” /> <bean id=”cacheManager”></p> <property name=”configLocation”> <value>classpath:ehcache.xml</value> </property> </bean> </beans>
3、在使用的方法前面加上 @Cacheable(cacheName=”reportCache”):
@Cacheable(cacheName=”reportCache”) public List getCapExpByDay(SearchForm form) throws BaseServiceException {</p> if (form.getSupervisorUnit() != null) { return getCapExpDayForSubSuper(form); }else if(!StringUtils.isEmpty(form.getCity())){ return getCapExpDayForSubCity(form); }else if(form.getProTypeId() != null ){ return getCapExpDayForSubType(form); } return getCapExpDayForInit(form); }
注意:如果使用的参数是对象,那么需要重载这个对象的hashCode和equals方法,或者使用@Cacheable(cacheName=”weatherCache”, keyGenerator=@KeyGenerator(name=”StringCacheKeyGenerator”))进行注解。
keyGenerator参数有几种:HashCodeCacheKeyGenerator(默认值)、StringCacheKeyGenerator、ListCacheKeyGenerator、MessageDigestCacheKeyGenerator,具体参考http://code.google.com/p/ehcache-spring-annotations/wiki/CacheKeyGenerators。</p>
http://2018live.com/archives/164
[/size]
发表评论
-
hibernate find illustrate
2012-05-03 17:05 697Find()方法下FetchType.LAZY、FetchTy ... -
hibernate dao
2012-05-03 12:54 2390[size=large]有分页功能的 HibernateDao ... -
hibernate Join-subclass
2012-05-03 11:13 1731Join-subclass基础(用于两个表之间通过连接外键) ... -
hibernate component
2012-05-03 11:10 915Component 本次做MySNS时也用到了Componen ... -
url上传参数
2012-04-20 12:58 751[size=large]@RequestMapping(val ... -
SpringMVC + spring3.1.1 + hibernate4.1.0 集成及常见问题总结
2012-04-20 13:01 1203转载【http://sishuok.com/for ...
相关推荐
学习JPA——Hibernate_Annotation使用实例学习JPA——Hibernate_Annotation使用实例学习JPA——Hibernate_Annotation使用实例
myeclipse的自带hibernate jar包不支持注解;自己找的hibernate注解所需的jar包:hibernate-core;hibernate-annotation;hbm-cfg-xml;log4j.properties
hibernate 注解 annotation 教程
这里面包涵了需要用Hibernate Annotation时,所需要的所有jar包! 现在我们公司在做web项目的时候,已经不用*.hbm.xml这种映射文件了,都是用Annotation(注解)方式来完成实体与表之间的映射关系,这样看起来比用...
hibernate annotation hibernate3
Hibernate-Annotation-3.4.0帮助文档
hibernate-annotations相关的jar包
孤独的狼-------------hibernate_annotation 注解实现Hibernate映射
本人初学hibernate,这是所需要的hibernate结合Annotation所需要的基本jar包,希望可以帮助大家,已经成功测试
hibernate helloword annotation version
支持hibernate3.x的Annotation注解,4.x版本均已集成此jar,无需下载。
hibernate annotation中文文档
Hibernate annotation 3.4 api CHM
Hibernate -annotation 学习笔记 详细总结~! Hibernate -annotation 学习笔记
Hibernate Annotation
hibernate 以Annotation方式配置在oracle和mysql hibernate,这里面提供了两个小例子,一个是配置跟oracle数据库相关联时的配置方法,一个是配置跟mysql数据库相关联时的配置方法。
Hibernate+Annotation.docHibernate+Annotation.doc
很全的Hibernate Annotation API文档,页面也很漂亮,太强大了。真的很实用!我以前找了好多,都不全,这个真的很不错,推荐一下。
hibernate 3.3 annotation jar
hibernate annotation 注解编程 官网文档 hibernate annotation 注解编程 官网文档 hibernate annotation 注解编程 官网文档