-
POJO类推荐使用封装类如Integer而不使用基本类型int,使用基本类型不能判空,而且查询为null时会报错。
-
使用fastjson提取json数组时,要对此作null判断,不然容易引起NPE异常。
JSONArray relNodes = data.getJSONArray("rel"); // 可以查看fastjson源码,可能返回null // 先做null判断 if (relNodes == null) { //... return ... } // 然后再循环提取 for (Object node: relNodes) { }
-
Controller层接口返回尽量不要使用JSONObject(耗时更多),而改用Java VO类。
-
不能信任所有Http接口(不管是自己的还是外部的),能异步处理就异步,不能异步也要做异常处理。不要因为http调用拖垮整个程序。
// 改成异步,不能信任何http请求 pool.submit(new Runnable() { @Override public void run() { try { HttpClient.postForm(Constant.NOTIFY_URL, data.toJSONString()); } catch (Exception e) { log.error("{}", e); } } });
-
SQL语句Where条件字段频繁使用,可以为其增加表索引,这样极大的提高了程序性能。(可以使用System.currentTimeMillis测试一下耗时)
-
使用 entrySet 遍历 Map 类集合 KV,而不是 keySet 方式进行遍历(具体可参考阿里巴巴JAVA开发手册)。
// 如果是jdk8或以上,直接使用Map.forEach方法。 if (!paramsMap.isEmpty()) { paramsMap.forEach((k, v)->{ String value = parseVarService.parseJsonPath(v.toString()); urlParameters.add(new BasicNameValuePair(k, value)); }); }
网友评论