<dependencies>
<dependency>
<groupId>com.github.ben-manes.caffeine</groupId>
<artifactId>caffeine</artifactId>
<version>2.9.0</version>
</dependency>
</dependencies>
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()
.build();
}
public static void put(String key, Object value) {
cache.put(key, value);
}
public static Object get(String key) {
return cache.getIfPresent(key);
}
public static void remove(String key) {
cache.invalidate(key);
}
}
public class UserService {
public User getUserById(String userId) {
User user = (User) CacheManager.get(userId);
if (user == null) {
user = userDao.getUserById(userId);
if (user != null) {
CacheManager.put(userId, user);
}
}
return user;
}
}