1、pom引入
<!--guava 缓存-->
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
<version>14.0.1</version>
</dependency>
2、代码实现
public class TestGuava {
private LoadingCache<String, User> cache = CacheBuilder.newBuilder()
.expireAfterWrite(20, TimeUnit.MINUTES)
.maximumSize(1000)
.build(new CacheLoader<String, User>() {
@Override
public User load(String s) throws Exception {
System.out.println("数据库中读取");
User user = User.builder().userId("sss").psw("ss").name("lxf").role("admin").build();
if (user == null) {
user = new User();
}
return user;
}
});
public static void main(String[] args) {
TestGuava testGuava = new TestGuava();
testGuava.getUser("sss");
}
public User getUser(String userId) {
User user = null;
try {
for (int i = 0; i < 10; i++) {
user = cache.get("sss");
System.out.println(user);
}
} catch (ExecutionException e) {
e.printStackTrace();
}
return user;
}
}
=============
模拟从数据库中读取
User(userId=sss, name=lxf, psw=ss, role=admin)
User(userId=sss, name=lxf, psw=ss, role=admin)
User(userId=sss, name=lxf, psw=ss, role=admin)
User(userId=sss, name=lxf, psw=ss, role=admin)
User(userId=sss, name=lxf, psw=ss, role=admin)
User(userId=sss, name=lxf, psw=ss, role=admin)
User(userId=sss, name=lxf, psw=ss, role=admin)
User(userId=sss, name=lxf, psw=ss, role=admin)
User(userId=sss, name=lxf, psw=ss, role=admin)
User(userId=sss, name=lxf, psw=ss, role=admin)