Java中的JetCache 实战
目录
1.JetCache 是什么?
JetCache
是一个基于java的缓存系统封装,提供统一的API和注解来简化缓存的使用。 JetCache提供了比SpringCache
更加强大的注解,可以原生的支持TTL、两级缓存、分布式自动刷新,还提供了Cache
接口用于手工缓存操作。 当前有四个实现,RedisCache
、TairCache
(此部分未在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类放在业务包的根下,
EnableMethodCache
,EnableCreateCacheAlpOlckiAnnotation
这两个注解分别激活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内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!
推荐阅读
-
每个Java程序员必备的8个开发工具
本文由码农网 –王国峰原创翻译,转载请看清文末的转载要求,欢迎参与我们的付费投稿计划!现在有很多库、实用工具和程序任J...
-
Java实战之医院管理系统的实现
目录项目介绍环境需要技术栈使用说明效果图展示核心代码用户管理控制层医生管理控制层病房管理控制层项目介绍医院管理系统,分为管理员、医...
-
elasticsearch索引index之Translog数据功能分析
目录translog的结构及写入方式translogFile的继承关系TranslogFile快照的方法总结translog的结构...
-
java实现简单发送邮件功能
-
Java实现图片比率缩放
-
Java中的JetCache 实战
-
elasticsearch索引index之engine读写控制结构实现
目录engine的实现结构Engine类的方法:如index方法的实现:总结engine的实现结构elasticsearch对于...
-
elasticsearch索引index之Mapping实现关系结构示例
目录Mapping的实现关系结构Mapper的三类parse方法部分Field总结Mapping的实现关系结构Lucene索引的...
-
LeetCode 动态规划之矩阵区域和详情
目录题目题解解题分析解题代码题目矩阵区域和给你一个mxn的矩阵mat和一个整数k,请你返回一个矩阵answer,其中每个a...
-
elasticsearch索引的创建过程index create逻辑分析
目录索引的创建过程materOperation方法实现clusterservice处理建立索引修改配置总结索引的创建过程从本篇...