Springboot整合ehcache3实现缓存的使用

前言:想用下ehcache,发现网上大部分都是ehcache2,3的很少,有些还不正确。我就去官网看了文档,这里只是简单应用,和官网差距不大,想深入学习的可以参考官方文档(个人感觉指引不清晰,当时花费时间挺长,也可能我菜)https://www.ehcache.org/documentation/

首先,引入依赖:

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-cache</artifactId>
        </dependency>
        <dependency>
            <groupId>org.ehcache</groupId>
            <artifactId>ehcache</artifactId>
        </dependency>

然后有两种方式:xml配置和直接在config中配置(不知道术语是什么)。

1.xml配置

(1)resources中创建 ehcache.xml文件

<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.xsd">

    <cache alias="foo">
        <key-type>java.lang.String</key-type>
        <value-type>java.lang.String</value-type>
        <expiry>
            <ttl unit="seconds">10</ttl>
        </expiry>
        <resources>
            <heap unit="entries">20</heap>
            <offheap unit="MB">10</offheap>
        </resources>
    </cache>

    <cache-template name="myDefaults">
        <key-type>java.lang.Long</key-type>
        <value-type>java.lang.String</value-type>
        <heap unit="entries">200</heap>
    </cache-template>

    <cache alias="bar" uses-template="myDefaults">
        <key-type>java.lang.Number</key-type>
    </cache>

    <cache alias="simpleCache" uses-template="myDefaults" />

</config>

(2)创建EhcacheConfig.java文件

@Configuration
@EnableCaching
public class EhcacheConfig {
    public static Cache<String, String> foo;
    @Bean
    public CacheManager getCacheManager() {                              
        URL myUrl = getClass().getResource("/ehcache.xml");
        XmlConfiguration xmlConfig = new XmlConfiguration(myUrl);
        CacheManager myCacheManager = CacheManagerBuilder.newCacheManager(xmlConfig);
        myCacheManager.init();
        foo = myCacheManager.getCache("foo",String.class,String.class);
        foo.put("ceshi","123");
        return myCacheManager;
    }
}

接下来就可在别的地方用了。

2.直接配置

创建EhcacheConfig.java

@Configuration
@EnableCaching
public class EhcacheConfig {
    public static Cache<String, String> caster;
    @Bean
    public CacheManager getCacheManager() {
        CacheManager cacheManager = CacheManagerBuilder.newCacheManagerBuilder()
                    .withCache("ceshi",CacheConfigurationBuilder.newCacheConfigurationBuilder(String.class,String.class, ResourcePoolsBuilder.heap(100)))
                .build();
        cacheManager.init();
        Cache<String, String> myCache = cacheManager.createCache("myCache",
                CacheConfigurationBuilder.newCacheConfigurationBuilder(String.class, String.class, ResourcePoolsBuilder.heap(100))
                .withExpiry(ExpiryPolicyBuilder.timeToLiveExpiration(Duration.ofSeconds(20))));
        caster = cacheManager.createCache("caster",
                CacheConfigurationBuilder.newCacheConfigurationBuilder(String.class, String.class, ResourcePoolsBuilder.heap(100))
                        .withExpiry(ExpiryPolicyBuilder.timeToLiveExpiration(Duration.ofHours(12))));
        return cacheManager;
    }
}

使用:应该都会把

EhcacheConfig.foo.put("xxxx","xxx");
EhcacheConfig.foo.get("xxxx");

总结

两种方法差距不大,都是很简单的使用。推荐去官网看看,介绍挺详细,也有字段的介绍。

写的途中突然发现这和springboot有毛关系,引入的依赖似乎也没有用到,这似乎是spring的用法,如果有大佬知道,也可以指点一下。学艺不精,我也是个垃圾。然后就是相关的注解(@Cacheable,@CachePut...),这个我也是初学,然后也没有相关业务场景,就建议看别的帖子。初学者,共勉。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值