cache.put(new Element(key,(Serializable)value));

放入緩存中的value必須序列化,Java原生類型 char、int ,原生類型的包裝類String、Character、Integer、Number...和集合List的實現類ArrayList都已經實現了Serializable接口,它們都可以直接放到緩存中。這里要注意的是,在方法返回值中經常用到的Iterator,并沒有實現Serializable接口,所以Cache 不能緩存返回值類型為Iterator的方法。


 還有一點要注意的是,如果我們要做緩存的方法是在bean的生命周期的初始化階段調用的(例如setter,init),此時方法緩存攔截器還沒被調用執行,那么緩存將不起作用,如做了下面的配置:

<bean id="OrganizationManagerMethodCache" class="org.springframework.aop.framework.ProxyFactoryBean">
   <property name="target">
   <bean class="com.wzj.rbac.ServiceFacade.OrganizationManager" init-method="init" autowire="byName"/>
   </property>
   <property name="interceptorNames">
   <list>
   <value>methodCachePointCut</value>
   </list>
   </property>
   </bean>
   在init初始方法里面調用的緩存方法將失效。

------君臨天下,舍我其誰------