spring cache 应用Jcache和ehcache3.x 实践

Ehcache 3.x 默认实现了JCacheJSR-107,而sprin默认也支持JCache,所以不用额外的依赖或工作,就能工作良好(Ehcache 2.x 我们忽略不讲,spring也可以很方便的支持)。

 

这里以excache 3.x 为例:

 

① 首先需要引入ehcache依赖 以及 jcache-api

<dependency>
    <groupId>org.ehcachegroupId>
    <artifactId>ehcacheartifactId>
    <version>3.2.0version>
dependency>

<dependency>
    <groupId>javax.cachegroupId>
    <artifactId>cache-apiartifactId>
    <version>1.0.0version>
dependency>

 

 

② 然后配置在 spring中配置ehcacheManager

 

下图是我 测试ehcache demo配置文件

 

<context:component-scan base-package="com.ly.examples.cache"/>
<cache:annotation-driven cache-manager="cacheManager"/>


<bean id="cacheManager" class="org.springframework.cache.support.SimpleCacheManager">
    <property name="caches">
        <set>
            <bean class="org.springframework.cache.concurrent.ConcurrentMapCacheFactoryBean" p:name="default"/>
            <bean class="org.springframework.cache.concurrent.ConcurrentMapCacheFactoryBean" p:name="product"/>
        set>
    property>
bean>

 

③ 添加ehcache xml配置文件

下图是我测试的 demo 配置:

<config
        xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance'
        xmlns='http://www.ehcache.org/v3'
        xsi:schemaLocation="
        http://www.ehcache.org/v3 http://www.ehcache.org/schema/ehcache-core-3.0.xsd">
    

    
    <cache alias="product">
        
        <resources>
            <heap unit="entries">2000heap>
            <offheap unit="MB">500offheap>
        resources>
    cache>

    
    <cache-template name="myDefaults">
        <key-type>java.lang.Longkey-type>
        <value-type>java.lang.Stringvalue-type>
        <heap unit="entries">200heap>
    cache-template>

    
    <cache alias="default" uses-template="myDefaults">
        <key-type>java.lang.Objectkey-type>
        <value-type>java.lang.Objectvalue-type>
    cache>

config>

④ 接下来 你就可以使用spring 缓存 注解或者 JCache 标准注解了。

你可能感兴趣的:(spring)