服务器之家:专注于VPS、云服务器配置技术及软件下载分享
分类导航

PHP教程|ASP.NET教程|Java教程|ASP教程|编程技术|正则表达式|C/C++|IOS|C#|Swift|Android|VB|R语言|JavaScript|易语言|vb.net|

服务器之家 - 编程语言 - Java教程 - Java中的JetCache 实战

Java中的JetCache 实战

2022-11-17 13:27心城以北 Java教程

这篇文章主要介绍了Java中的JetCache实战,JetCache是一个基于Java的缓存系统封装,提供统一的API和注解来简化缓存的使用,下文更多相关资料需要的小伙伴可以参考一下

1.JetCache 是什么?

JetCache是一个基于Java的缓存系统封装,提供统一的API和注解来简化缓存的使用。 JetCache提供了比SpringCache更加强大的注解,可以原生的支持TTL、两级缓存、分布式自动刷新,还提供了Cache接口用于手工缓存操作。 当前有四个实现,RedisCacheTairCache(此部分未在github开源)、CaffeineCache(in memory)和一个简易的LinkedHashMapCache(in memory),要添加新的实现也是非常简单的。

全部特性:

  • 通过统一的API访问Cache系统
  • 通过注解实现声明式的方法缓存,支持TTL和两级缓存
  • 通过注解创建并配置Cache实例
  • 针对所有Cache实例和方法缓存的自动统计
  • Key的生成策略和Value的序列化策略是可以配置的
  • 分布式缓存自动刷新,分布式锁 (2.2+)
  • 异步Cache API (2.2+,使用Redis的lettuce客户端时)
  • Spring Boot支持

2.使用方法

  • 添加依赖
?
1
2
3
4
5
6
   // redis
    implementation 'org.springframework.boot:spring-boot-starter-data-redis'
    implementation 'org.apache.commons:commons-pool2'
    // jetcache
    implementation 'com.alicp.jetcache:jetcache-starter-redis:2.6.2'
  • 配置 yml
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
jetcache:
  statIntervalMinutes: 15
  areaInCacheName: false
  local:
    default:
      type: linkedhashmap
      keyConvertor: fastjson
  remote:
    default:
      type: redis
      keyConvertor: fastjson
      valueEncoder: java
      valueDecoder: java
      poolConfig:
        minIdle: 5
        maxIdle: 20
        maxTotal: 50
      host: 127.0.0.1
      port: 6379
  • 然后创建一个App类放在业务包的根下,EnableMethodCacheEnableCreateCacheAnnotation这两个注解分别激活Cached和CreateCache注解,其他和标准的Spring Boot程序是一样的。这个类可以直接main方法运行。
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
package io.zhengsh.order;
import com.alicp.jetcache.anno.config.EnableCreateCacheAnnotation;
import com.alicp.jetcache.anno.config.EnableMethodCache;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@MapperScan("io.zhengsh.order.mapper")
@SpringBootApplication
@EnableMethodCache(basePackages = "io.zhengsh.order.service")
@EnableCreateCacheAnnotation
public class OrderApplication {
    public static void main(String[] args) {
        SpringApplication.run(OrderApplication.class);
    }
}
  • 业务类上增加注解使用,业务类代码如下:
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
public interface OrderService {
    OrderVo get(Long id);
    OrderVo createOrder(OrderDto orderDto);
}
// 实现类
@Service
public class OrderServiceImpl implements OrderService {
    private Logger logger = LoggerFactory.getLogger(OrderServiceImpl.class);
    @Override
    public OrderVo get(Long id) {
        logger.info("OrderService#get invoke!");
        Order orderVo =  new OrderVo();
        orderVo.setCode("100");
        return orderVo;
    }
    @Override
    public OrderVo createOrder(OrderDto orderDto) {
        logger.info("OrderService#createOrder invoke!");
        return null;
    }
}
  • 测试代码
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
@SpringBootTest
class OrderServiceTest {
    private Logger logger = LoggerFactory.getLogger(OrderServiceTest.class);
    @Autowired
    private OrderService orderService;
    @Test
    void get() {
        OrderVo orderVo = orderService.get(100L);
        logger.info("orderVo#code : {} ", orderVo.getCode());
        OrderVo orderVo1 = orderService.get(100L);
        logger.info("orderVo#code : {} ", orderVo1.getCode());
    }
    @Test
    void createOrder() {
    }
}

输出如下:

​// 输出
// OrderService#get invoke!
// orderVo#code : 100
// orderVo#code : 100

到此这篇关于Java中的JetCache 实战的文章就介绍到这了,更多相关Java中的JetCache内容请搜索服务器之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持服务器之家!

原文链接:https://juejin.cn/post/7082396439292149773

延伸 · 阅读

精彩推荐
  • Java教程Java多线程锁机制相关原理实例解析

    Java多线程锁机制相关原理实例解析

    这篇文章主要介绍了Java多线程锁机制相关原理实例解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可...

    七月在野,八月在宇2222020-08-02
  • Java教程浅谈Java中几种常见的比较器的实现方法

    浅谈Java中几种常见的比较器的实现方法

    下面小编就为大家带来一篇浅谈Java中几种常见的比较器的实现方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧...

    danmoqianhua11012021-01-14
  • Java教程详解Spring Cloud Feign 熔断配置的一些小坑

    详解Spring Cloud Feign 熔断配置的一些小坑

    这篇文章主要介绍了详解Spring Cloud Feign 熔断配置的一些小坑,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧...

    FutureElement6282021-04-23
  • Java教程java实现AES 32位加密解密的方案

    java实现AES 32位加密解密的方案

    Oracle在其官方网站上提供了无政策限制权限文件(Unlimited Strength Jurisdiction Policy Files),我们只需要将其部署在JRE环境中,就可以解决限制问题,下面给大...

    ourLang5292022-07-08
  • Java教程springboot项目启动的时候参数无效的解决

    springboot项目启动的时候参数无效的解决

    这篇文章主要介绍了springboot项目启动的时候参数无效的解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教...

    sky_jiangcheng11532021-12-27
  • Java教程详解java开发webservice的几种方式

    详解java开发webservice的几种方式

    webservice的应用已经越来越广泛了,下面介绍几种在Java体系中开发webservice的方式,有兴趣的可以了解一下。...

    haoxingfeng3932020-07-06
  • Java教程基于spring 方法级缓存的多种实现

    基于spring 方法级缓存的多种实现

    下面小编就为大家带来一篇基于spring 方法级缓存的多种实现。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧...

    刘竹青7352021-01-06
  • Java教程Java 简化正则表达式的使用

    Java 简化正则表达式的使用

    本篇文章主要介绍了Java 简化正则表达式使用的相关知识,具有很好的参考价值。下面跟着小编一起来看下吧...

    YouXianMing4992020-09-21