<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd "
default-autowire="byName">
<!--启动注解 进行guava cache 管理 -->
<bean id="cacheManager" class="org.springframework.cache.support.CompositeCacheManager">
<property name="cacheManagers">
<list>
<!--将guava cache交于spring管理 如果要实现redis 也可以加在这里 -->
<ref bean="guavaCacheManager" />
</list>
</property>
<property name="fallbackToNoOpCache" value="true" />
</bean>
<!--配置guava cache需要缓存的key 以及建立方式 -->
<bean id="guavaCacheManager"
class="com.test.test.test.components.common.aspect.guava.cache.GuavaCacheManager">
<property name="configMap">
<map key-type="java.lang.String" value-type="com.google.common.cache.CacheBuilder">
<entry key="allJobCategories" value-ref="allJobCategoriesBuilder" />
<entry key="packageFactors" value-ref="defultBuilder" />
<entry key="packagePlans" value-ref="defultBuilder" />
</map>
</property>
</bean>
<!--设置guava cache默认缓存策略 每个cache生存期为n小时(dDhHmMsS) 最大n个缓存数 -->
<bean id="allJobCategoriesBuilder" class="com.google.common.cache.CacheBuilder"
factory-method="from">
<constructor-arg value=" expireAfterWrite=1h" />
</bean>
<bean id="defultBuilder" class="com.google.common.cache.CacheBuilder"
factory-method="from">
<constructor-arg value=" expireAfterWrite=1h" />
</bean>
</beans>