在Java中,可以通過(guò)使用`CacheBuilder`類(lèi)來(lái)創(chuàng)建本地緩存并設(shè)置過(guò)期時(shí)間。以下是一個(gè)示例代碼:
```java
import com.google.common.cache.Cache;
import com.google.common.cache.CacheBuilder;
import java.util.concurrent.TimeUnit;
public class LocalCacheExample {
public static void main(String[] args) {
// 創(chuàng)建一個(gè)本地緩存,設(shè)置最大緩存大小為100,過(guò)期時(shí)間為10分鐘
Cache
.maximumSize(100)
.expireAfterWrite(10, TimeUnit.MINUTES)
.build();
// 將鍵值對(duì)放入緩存中
cache.put("key1", "value1");
cache.put("key2", "value2");
// 從緩存中獲取值
String value1 = cache.getIfPresent("key1");
String value2 = cache.getIfPresent("key2");
System.out.println("value1: " + value1);
System.out.println("value2: " + value2);
// 休眠11分鐘,此時(shí)緩存中的數(shù)據(jù)應(yīng)該已經(jīng)過(guò)期
try {
Thread.sleep(11 * 60 * 1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
// 再次嘗試獲取緩存中的值
value1 = cache.getIfPresent("key1");
value2 = cache.getIfPresent("key2");
System.out.println("value1 after expiration: " + value1);
System.out.println("value2 after expiration: " + value2);
}
}
```
在上面的代碼中,使用`CacheBuilder.newBuilder()`來(lái)創(chuàng)建一個(gè)緩存構(gòu)建器,然后通過(guò)調(diào)用`maximumSize()`方法設(shè)置緩存的最大大小,`expireAfterWrite()`方法設(shè)置緩存數(shù)據(jù)的過(guò)期時(shí)間。最后通過(guò)調(diào)用`build()`方法來(lái)構(gòu)建緩存對(duì)象。
需要注意的是,以上示例中使用了Guava庫(kù)中的`CacheBuilder`來(lái)創(chuàng)建本地緩存,需要在項(xiàng)目中引入相應(yīng)的依賴(lài)。