LoadingCache缓存使用

项目中用到一开始将一些信息加载,后面获取直接缓存获取就行

@PostConstruct
public void init() {
 LoadingCache userCache = CacheBuilder.newBuilder()                
 			.maximumSize(10000))//设置缓存上线                
 			.expireAfterAccess(10, TimeUnit.MINUTES)
 			//设置时间对象没有被读/写访问则对象从内存中删除                			.expireAfterWrite(10, TimeUnit.MINUTES)
 			//设置时间对象没有被写访问则对象从内存中删除                
 			//移除监听器,缓存项被移除时会触发                
 			.removalListener(new RemovalListener<String, UserProfile>() {                    				@Override                    
 			public void onRemoval(RemovalNotification<String, UserProfile> notification) {                       
 			//逻辑                       
  		}                    
  	}               
   })                
   .recordStats()                
   //CacheLoader类 实现自动加载                
   .build(new CacheLoader<String, Object>() {                    
   @Override                    
   public Object load(String key) {                      
    //从SQL或者NoSql 获取对象        
    return object(查询到的);           
     }                
    });
 }

你可能感兴趣的:(LoadingCache缓存使用)