springcache

<?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>

猜你喜欢

转载自blog.csdn.net/hxf_yxh/article/details/83147043