楔子
學習筆記,做個總結,希望不要誤導人。
@Cacheable(sync=true) only allows a single cache on
@Cacheable(value = {"cahce:menu", "mu"}, key = "'sysMenu'", sync = true)//|https://cloud.tencent.com/developer/article/1497596
//代表 當前方法的結果需要緩存,如果緩存中有,方法不調用,如果緩存中沒有,查詢後彷如緩存
@Override
public List<MenuStream> getAllwithJ8Stream() {
log.info("menu with java8stream by mysql db");
// 使用java8 stream 封裝父子關係,來展示 ztree 標準JSON格式
List<MenuStream> queryForList = jtemplate.query("select id,pId ,name,url,icon from t_menu", new BeanPropertyRowMapper(MenuStream.class));
// 獲取取根節點
List<MenuStream> collect = queryForList.stream().filter((menu) -> {
return menu.getPid() == null;
}).map((menu) -> {
menu.setChildren(getChildren(menu, queryForList));
return menu;
}).sorted((m1, m2) -> {
return m1.getId() - m2.getId();
}).collect(Collectors.toList());
System.out.println(collect);
return collect;
}
org.springframework.cache.interceptor.CacheAspectSupport.CacheOperationContexts#determineSyncFlag
@Cacheable(value = {"cahce:menu", "mu"}, key = "'sysMenu'", sync = true
調整爲
@Cacheable(value = {"cahce:menu"}, key = "'sysMenu'", sync = true