Java中的JetCache?實戰(zhàn)
1.JetCache 是什么?
JetCache是一個基于Java的緩存系統(tǒng)封裝,提供統(tǒng)一的API和注解來簡化緩存的使用。 JetCache提供了比SpringCache更加強大的注解,可以原生的支持TTL、兩級緩存、分布式自動刷新,還提供了Cache接口用于手工緩存操作。 當前有四個實現(xiàn),RedisCache、TairCache(此部分未在github開源)、CaffeineCache(in memory)和一個簡易的LinkedHashMapCache(in memory),要添加新的實現(xiàn)也是非常簡單的。
全部特性:
- 通過統(tǒng)一的API訪問
Cache系統(tǒng) - 通過注解實現(xiàn)聲明式的方法緩存,支持TTL和兩級緩存
- 通過注解創(chuàng)建并配置
Cache實例 - 針對所有
Cache實例和方法緩存的自動統(tǒng)計 - 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
- 然后創(chuàng)建一個App類放在業(yè)務(wù)包的根下,
EnableMethodCache,EnableCreateCacheAnnotation這兩個注解分別激活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.order.mapper")
@SpringBootApplication
@EnableMethodCache(basePackages = "io.zhengsh.order.service")
@EnableCreateCacheAnnotation
public class OrderApplication {
?
? ?public static void main(String[] args) {
? ? ? ?SpringApplication.run(OrderApplication.class);
? }
}- 業(yè)務(wù)類上增加注解使用,業(yè)務(wù)類代碼如下:
public interface OrderService {
?
? ?OrderVo get(Long id);
?
? ?OrderVo createOrder(OrderDto orderDto);
}
?
// 實現(xiàn)類
@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;
? }
}- 測試代碼
@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
到此這篇關(guān)于Java中的JetCache 實戰(zhàn)的文章就介紹到這了,更多相關(guān)Java中的JetCache內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
springboot如何獲取相對路徑文件夾下靜態(tài)資源的方法
這篇文章主要介紹了springboot如何獲取相對路徑文件夾下靜態(tài)資源的方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2019-05-05
java多線程抓取鈴聲多多官網(wǎng)的鈴聲數(shù)據(jù)
很容易就能發(fā)現(xiàn)通過改變 listId和page就能從服務(wù)器獲取鈴聲的json數(shù)據(jù), 通過解析json數(shù)據(jù), 可以看到都帶有{"hasmore":1,"curpage":1}這樣子的指示,通過判斷hasmore的值,決定是否進行下一頁的抓取。 但是通過上面這個鏈接返回的json中不帶有鈴聲的下載地址2016-04-04
淺談讓@Value更方便的Spring自定義轉(zhuǎn)換類
Spring為大家內(nèi)置了不少開箱即用的轉(zhuǎn)換類,如字符串轉(zhuǎn)數(shù)字、字符串轉(zhuǎn)時間等,但有時候需要使用自定義的屬性,則需要自定義轉(zhuǎn)換類了2021-06-06
Java使用JDK與Cglib動態(tài)代理技術(shù)統(tǒng)一管理日志記錄
這篇文章主要介紹了Java使用JDK與Cglib動態(tài)代理技術(shù)統(tǒng)一管理日志記錄,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-05-05
Java里得到00:00:00格式的時分秒的Timestamp
Java里如何得到00:00:00格式的時分秒的Timestamp ,下面是具體的實現(xiàn)代碼,需要的朋友可以參考下。2009-09-09
編寫Spring MVC控制器的14個技巧(小結(jié))
這篇文章主要介紹了編寫Spring MVC控制器的14個技巧,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-11-11

