2、然后在service层中,可通过BeanUtils.copyProperties(requiredParam, payCart);BeanUtils.copyProperties(optionParam, payCart);同时向某对象复制传值。
3、写公用方法时,比如getCart(),传值不要写死成getCart(userId,productId,cartDao),而是写成getCart(requiredParam,optionParam,originParam);就灵活多了!出现问题时可throw new RuntimeException("字段为空");
4、非空判断可写在公用方法!也可使用spring自定义注解,详见。。。。。。。。。。。。。。。。
5、html中的img有onerror属性,图片加载失败时可触发事件。
6、数据库查询数据,可使用函数,比如统计url点击次数,停留时长,可用select dealedTable.Url,COUNT(dealedTable.Url) from (select substring_index(event_url,'?',1) as Url from url_param_2014_09 ) as dealedTable GROUP BY dealedTable.Url;
7、json与List等集合互相转化,String q=JsonSerializableUtil.toJson(list);List<PageAccessResult> test=JsonSerializableUtil.fromJson(q, new TypeToken<List<PageAccessResult>>(){});但一般采取把集合作为一个对象的一个属性,把对象进行json互相转化即可;或:
public static <T> T[] jsonStringToList(String json, Class<T> clazz) {
JSONArray jSONArray=JSONArray.fromObject(json);
return (T[]) JSONArray.toArray(jSONArray, clazz);
}
8、之前用httpClient测试http服务,最近发现后台服务访问远程rest接口的需求,可采用spring 框架中的RestTemplate类实现。
9、ab测试
10、所有的service方法按顺序写好注释,便于以后维护:比如:
public WebResult addTopic(TopicUpdateRequiredParam requiredParam,TopicUpdateOptionParam optionParam,TopicOriginParam originParam) {
String method = "TopicServiceImpl.addTopic";
//1打印开始调用日志
LogInfoUtil.logInfoBegin(requiredParam, optionParam, originParam, method, logger);
//2验证必填参数
WebResult result=(WebResult) VerifyUtil.verifyVoluationObject(requiredParam, "TopicUpdateRequiredParam", method, new WebResult(), logger);
if(result.getCode()==ResultCode.FAIL)
return result;
result=(WebResult) VerifyUtil.verifyVoluationObject(optionParam, "TopicUpdateOptionParam", method, result, logger);
if(result.getCode()==ResultCode.FAIL)
return result;
//3复制参数
Topic topic=new Topic();
try {
BeanUtils.copyProperties(topic, requiredParam);
BeanUtils.copyProperties(topic, requiredParam);
} catch (IllegalAccessException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (InvocationTargetException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
//4执行保存
topicDao.addTopic(topic);
//5打印结束调用日志
LogInfoUtil.logInfoEnd(result, method, logger);
return result;
}