Spring Boot是一个快速开发框架,它提供了很多便捷的功能,其中包括本地缓存。Caffeine是一种高性能的本地缓存库,它可以提高应用程序的性能和响应速度。本文将详细讲解如何在Spring Boot中使用Caffeine本地缓存。
步骤一:添加依赖
首先,需要在pom.xml
文件中添加Caffeine依赖:
<dependency>
<groupId>com.github.ben-manes.caffeine</groupId>
<artifactId>caffeine</artifactId>
<version>2.9.0</version>
</dependency>
步骤二:创建缓存对象
接下来,需要创建一个缓存对象。可以使用Caffeine
类的builder()
方法来创建一个缓存对象。例如,下面的代码创建了一个最大容量为1000个对象,过期时间为5分钟的缓存对象:
import com.github.benmanes.caffeine.cache.Cache;
import com.github.benmanes.caffeine.cache.Caffeine;
import java.util.concurrent.TimeUnit;
public class CacheManager {
private static Cache<String, Object> cache;
static {
cache = Caffeine.newBuilder()
.maximumSize(1000)
.expireAfterWrite(5, TimeUnit.MINUTES)
.build();
}
public static Cache<String, Object> getCache() {
return cache;
}
}
上述代码中,Caffeine.newBuilder()
方法用于创建一个新的缓存对象。maximumSize(1000)
方法用于设置缓存的最大容量为1000个对象。expireAfterWrite(5, TimeUnit.MINUTES)
方法用于设置缓存对象的过期时间为5分钟。最后,使用build()
方法创建缓存对象。
步骤三:使用缓存对象
创建缓存对象后,可以使用put()
方法向缓存中添加对象,使用get()
方法从缓存中获取对象。例如,下面的代码向缓存中添加了一个名为“key”的字符串对象,并从缓存中获取了该对象:
Cache<String, Object> cache = CacheManager.getCache();
// Put an object into the cache
cache.put("key", "value");
// Get an object from the cache
Object value = cache.getIfPresent("key");
上述代码中,CacheManager.getCache()
方法用于获取缓存对象。cache.put("key", "value")
方法用于向缓存中添加一个名为“key”的字符串对象。cache.getIfPresent("key")
方法用于从缓存中获取名为“key”的对象。
示例一:使用Caffeine缓存字符串对象
下面的示例演示了如何使用Caffeine缓存字符串对象:
import com.github.benmanes.caffeine.cache.Cache;
import com.github.benmanes.caffeine.cache.Caffeine;
import java.util.concurrent.TimeUnit;
public class CacheManager {
private static Cache<String, String> cache;
static {
cache = Caffeine.newBuilder()
.maximumSize(1000)
.expireAfterWrite(5, TimeUnit.MINUTES)
.build();
}
public static Cache<String, String> getCache() {
return cache;
}
}
public class Main {
public static void main(String[] args) {
Cache<String, String> cache = CacheManager.getCache();
// Put a string object into the cache
cache.put("key", "value");
// Get a string object from the cache
String value = cache.getIfPresent("key");
System.out.println(value);
}
}
上述代码中,CacheManager
类用于创建缓存对象。Main
类用于使用缓存对象。在Main
类中,使用CacheManager.getCache()
方法获取缓存对象。使用cache.put("key", "value")
方法向缓存中添加一个名为“key”的字符串对象。使用cache.getIfPresent("key")
方法从缓存中获取名为“key”的字符串对象。
示例二:使用Caffeine缓存自定义对象
下面的示例演示了如何使用Caffeine缓存自定义对象:
import com.github.benmanes.caffeine.cache.Cache;
import com.github.benmanes.caffeine.cache.Caffeine;
import java.util.concurrent.TimeUnit;
public class User {
private String name;
private int age;
public User(String name, int age) {
this.name = name;
this.age = age;
}
public String getName() {
return name;
}
public int getAge() {
return age;
}
}
public class CacheManager {
private static Cache<String, User> cache;
static {
cache = Caffeine.newBuilder()
.maximumSize(1000)
.expireAfterWrite(5, TimeUnit.MINUTES)
.build();
}
public static Cache<String, User> getCache() {
return cache;
}
}
public class Main {
public static void main(String[] args) {
Cache<String, User> cache = CacheManager.getCache();
// Put a user object into the cache
User user = new User("John", 30);
cache.put("key", user);
// Get a user object from the cache
User cachedUser = cache.getIfPresent("key");
System.out.println(cachedUser.getName());
System.out.println(cachedUser.getAge());
}
}
上述代码中,User
类是一个自定义的对象。CacheManager
类用于创建缓存对象。Main
类用于使用缓存对象。在Main
类中,使用CacheManager.getCache()
方法获取缓存对象。使用cache.put("key", user)
方法向缓存中添加一个名为“key”的用户对象。使用cache.getIfPresent("key")
方法从缓存中获取名为“key”的用户对象。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Springboot Caffeine本地缓存使用示例 - Python技术站