启动java服务时刷新缓存_Spring java项目对外提供服务和java进程启动时bean,内部缓存加载的先后关系?...
Spring java項目對外提供服務(wù)有這么幾種,一種是web服務(wù),譬如tomcat,一種是RPC服務(wù),譬如dubbo,thrift??偟膩碚f就是對外開放某個/些端口,接收請求。
Spring工程項目啟動時,bean會加載,內(nèi)部的一些類成員緩存,譬如guava的CacheBuilder.newBuilder().build(){},會初始化。
Spring或者java是如何保證bean加載完,緩存加載完后才對外提供服務(wù)的呢?
打個比方,下面是一個@Service注解的類的類成員,初始化時會遠程調(diào)用來加載緩存,如何保證這個緩存加載完成后,該java進程才對外服務(wù)呢?private LoadingCache> mycache = CacheBuilder.newBuilder()
.expireAfterWrite(6, TimeUnit.MINUTES)
.refreshAfterWrite(5, TimeUnit.MINUTES)
.build(new CacheLoader>() {
@Override
public Set load(String key) throws Exception {
Set resultSet = myFeign.callRemote(param);
return resultSet;
}
@Override
public ListenableFuture> reload(final String key, Set oldValue) throws Exception {
return listeningThreadPool.getListeningExecutor().submit(new Callable>() {
@Override
public Set call() throws Exception {
return load(key);
}
});
}
});
~
總結(jié)
以上是生活随笔為你收集整理的启动java服务时刷新缓存_Spring java项目对外提供服务和java进程启动时bean,内部缓存加载的先后关系?...的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python pandas库 画图_py
- 下一篇: hdfs中与file数组类似的数组_如何