1.map 按 key 升序排序啊
private static Map<String, Long> sortByKey(Map<String, Long> map) {
Map<String, Long> result = new LinkedHashMap<>(map.size());
map.entrySet().stream()
.sorted(Map.Entry.comparingByKey())
.forEachOrdered(e -> result.put(e.getKey(), e.getValue()));
return result;
}
2.BeanUtil.copyProperties(param, WosOrder.class, new String[]{"planFixedTime"});
copy时Date类型为null报错,可以忽略字段
3.泛型使用,获取用户头像
public <T> void getUserIcon(List<T> c, String userId, String userIcon) { List<String> list = new ArrayList<>(); Iterator<T> iterator = c.iterator(); while (iterator.hasNext()) { T t = iterator.next(); String id = BeanUtil.getProperty(t, userId); list.add(id); } List<SysUser> sysUsers = this.listByIds(list); Map<String, String> userMap = sysUsers.stream().collect(HashMap::new,(map, it)->map.put(it.getId(),it.getUsericon()),HashMap::putAll); for (T t : c) { String user = BeanUtil.getProperty(t, userId); BeanUtil.setProperty(t, userIcon, userMap.get(user)); } }
应用举例:
sysUserService.getUserIcon(wosOrderlogList, "processUser", "userIcon");
sysUserService.getUserIcon(newsList, "messagesender", "userIcon");
4.定时任务(多线程中可能也不行)使用@Autowired注入service时报空指针,可改为通过BeanFactory获取Bean实例
5. nginx访问后端PUT,DELETE请求访问不通(psotman可以访问),先修改了nginx配置文件增加了PUT,DELETE请求,然而并没有用
盲猜可能网关拦截了delete和put请求,又让前端把put和delete请求改为post,可参考用域名访问接口, get和post请求均正常,而put和delete请求均无法正常使用_相约黄昏后007的博客-优快云博客
6.使用aop记录接口调用记录日志,使用@Around通知,因为内部没有调用proceed()方法导致接口没有被执行(或改为@Before通知类型也可以不用调用proceed)
7.自定义注解作用在类上未生效,因为在切点表达式中使用了@annotation,改成@within即可
@annotation可以使自定义注解标注的方法进入切面