Java中的JetCache 实战

目录

  • 1.JetCache 是什么?

  • 2.使用方法

  • Java中的JetCache

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.使用方法

  • 添加依赖

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

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类放在业务包的根下,EnableMethodCacheEnableCreateCacheAlpOlckiAnnotation这两个注解分别激活Cached和CreateCache注解,其他和恰卡编程网标准的Spring Boot程序是一样的。这个类可以直接main方法运行。

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.ordwww.cppcns.comer.mapper") @SpringBootApplication @EnableMethodCache(basePackages = "io.zhengsh.order.service") @EnableCreateCacheAnnotation public class OrderApplication {  public static void main(String[] args) {    SpringApplication.run(OrderApplication.class);   } }

  • 业务类上增加注解使用,业务类代码如下:

public interface OrderService {  OrderVo get(Long id);  OrderVo createOrder(OrderDto orderDto); } // 实现类 @Service publlpOlckiAic 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;   } }

  • 测试代码

@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内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

发布于 2022-04-22 18:33:48
收藏
分享
海报
0 条评论
32
上一篇:elasticsearch索引index之engine读写控制结构实现 下一篇:Java实现图片比率缩放
目录

    0 条评论

    本站已关闭游客评论,请登录或者注册后再评论吧~

    忘记密码?

    图形验证码