欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Java中的JetCache?實(shí)戰(zhàn)

 更新時(shí)間:2022年04月22日 10:13:12   作者:??心城以北????  
這篇文章主要介紹了Java中的JetCache實(shí)戰(zhàn),JetCache是一個(gè)基于Java的緩存系統(tǒng)封裝,提供統(tǒng)一的API和注解來(lái)簡(jiǎn)化緩存的使用,下文更多相關(guān)資料需要的小伙伴可以參考一下

1.JetCache 是什么?

JetCache是一個(gè)基于Java的緩存系統(tǒng)封裝,提供統(tǒng)一的API和注解來(lái)簡(jiǎn)化緩存的使用。 JetCache提供了比SpringCache更加強(qiáng)大的注解,可以原生的支持TTL、兩級(jí)緩存、分布式自動(dòng)刷新,還提供了Cache接口用于手工緩存操作。 當(dāng)前有四個(gè)實(shí)現(xiàn),RedisCacheTairCache(此部分未在github開源)、CaffeineCache(in memory)和一個(gè)簡(jiǎn)易的LinkedHashMapCache(in memory),要添加新的實(shí)現(xiàn)也是非常簡(jiǎn)單的。

全部特性:

  • 通過(guò)統(tǒng)一的API訪問Cache系統(tǒng)
  • 通過(guò)注解實(shí)現(xiàn)聲明式的方法緩存,支持TTL和兩級(jí)緩存
  • 通過(guò)注解創(chuàng)建并配置Cache實(shí)例
  • 針對(duì)所有Cache實(shí)例和方法緩存的自動(dòng)統(tǒng)計(jì)
  • Key的生成策略和Value的序列化策略是可以配置的
  • 分布式緩存自動(dòng)刷新,分布式鎖 (2.2+)
  • 異步Cache API (2.2+,使用Redis的lettuce客戶端時(shí))
  • 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)建一個(gè)App類放在業(yè)務(wù)包的根下,EnableMethodCache,EnableCreateCacheAnnotation這兩個(gè)注解分別激活Cached和CreateCache注解,其他和標(biāo)準(zhǔn)的Spring Boot程序是一樣的。這個(gè)類可以直接main方法運(yùn)行。
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);
}
?
// 實(shí)現(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;
 ?  }
}
  • 測(cè)試代碼
@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 實(shí)戰(zhàn)的文章就介紹到這了,更多相關(guān)Java中的JetCache內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • springboot如何獲取相對(duì)路徑文件夾下靜態(tài)資源的方法

    springboot如何獲取相對(duì)路徑文件夾下靜態(tài)資源的方法

    這篇文章主要介紹了springboot如何獲取相對(duì)路徑文件夾下靜態(tài)資源的方法,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2019-05-05
  • java多線程抓取鈴聲多多官網(wǎng)的鈴聲數(shù)據(jù)

    java多線程抓取鈴聲多多官網(wǎng)的鈴聲數(shù)據(jù)

    很容易就能發(fā)現(xiàn)通過(guò)改變 listId和page就能從服務(wù)器獲取鈴聲的json數(shù)據(jù), 通過(guò)解析json數(shù)據(jù), 可以看到都帶有{"hasmore":1,"curpage":1}這樣子的指示,通過(guò)判斷hasmore的值,決定是否進(jìn)行下一頁(yè)的抓取。 但是通過(guò)上面這個(gè)鏈接返回的json中不帶有鈴聲的下載地址
    2016-04-04
  • 淺談讓@Value更方便的Spring自定義轉(zhuǎn)換類

    淺談讓@Value更方便的Spring自定義轉(zhuǎn)換類

    Spring為大家內(nèi)置了不少開箱即用的轉(zhuǎn)換類,如字符串轉(zhuǎn)數(shù)字、字符串轉(zhuǎn)時(shí)間等,但有時(shí)候需要使用自定義的屬性,則需要自定義轉(zhuǎn)換類了
    2021-06-06
  • Java使用JDK與Cglib動(dòng)態(tài)代理技術(shù)統(tǒng)一管理日志記錄

    Java使用JDK與Cglib動(dòng)態(tài)代理技術(shù)統(tǒng)一管理日志記錄

    這篇文章主要介紹了Java使用JDK與Cglib動(dòng)態(tài)代理技術(shù)統(tǒng)一管理日志記錄,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-05-05
  • Java里得到00:00:00格式的時(shí)分秒的Timestamp

    Java里得到00:00:00格式的時(shí)分秒的Timestamp

    Java里如何得到00:00:00格式的時(shí)分秒的Timestamp ,下面是具體的實(shí)現(xiàn)代碼,需要的朋友可以參考下。
    2009-09-09
  • Springmvc模式上傳和下載與enctype對(duì)比

    Springmvc模式上傳和下載與enctype對(duì)比

    這篇文章主要介紹了Springmvc模式上傳和下載與enctype對(duì)比,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-12-12
  • Java實(shí)用工具之StringJoiner詳解

    Java實(shí)用工具之StringJoiner詳解

    這篇文章主要介紹了Java實(shí)用工具之StringJoiner詳解,文中有非常詳細(xì)的代碼示例,對(duì)正在學(xué)習(xí)java的小伙伴們有很好地幫助,需要的朋友可以參考下
    2021-05-05
  • 編寫Spring MVC控制器的14個(gè)技巧(小結(jié))

    編寫Spring MVC控制器的14個(gè)技巧(小結(jié))

    這篇文章主要介紹了編寫Spring MVC控制器的14個(gè)技巧,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-11-11
  • 淺談Java中真的只有值傳遞么

    淺談Java中真的只有值傳遞么

    這篇文章主要介紹了淺談Java中真的只有值傳遞么?文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-12-12
  • 通過(guò)JDK源碼分析關(guān)閉鉤子詳解

    通過(guò)JDK源碼分析關(guān)閉鉤子詳解

    一個(gè)簡(jiǎn)單的關(guān)閉鉤子,程序被中斷或者正常退出時(shí)會(huì)顯示 hook shutdown!非常的優(yōu)雅,有效,巧妙。那么這篇文章就來(lái)給大家介紹關(guān)于通過(guò)JDK源碼分析關(guān)閉鉤子的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),需要的朋友可以參考借鑒。
    2017-11-11

最新評(píng)論