1、采用spring自带缓存,但也可以使用第三方
<bean id="cacheManager" class="org.springframework.cache.support.SimpleCacheManager"> <property name="caches"> <set> <bean class="org.springframework.cache.concurrent.ConcurrentMapCacheFactoryBean" p:name="typedDict" /> </set> </property> </bean>
2、缓存切面
<cache:advice id="dictCacheAdvice" cache-manager="cacheManager"> <cache:caching cache="typedDict"> <cache:cacheable method="getByType" /> <cache:cache-evict method="add" all-entries="true" /> <cache:cache-evict method="modify" all-entries="true" /> <cache:cache-evict method="remove" all-entries="true" /> </cache:caching> </cache:advice>
3、代理运行
<bean id="dictService" class="org.springframework.aop.framework.ProxyFactoryBean">
<property name="proxyInterfaces" value="person.wjt.base.dict.service.DictService" />
<property name="target" ref="dictServiceImpl" />
<property name="interceptorNames">
<list>
<value>dictCacheAdvice</value>
</list>
</property>
</bean>
总结:其实使用到AOP时都是经过以上三种方式,只是表现形式不一样