这里提两点我项目中真正用到的建议,后面会陆续把其他的分享出来。
1、controller返回数据大体格式在BaseController统一定义
例如返回给前端的格式是
{
"data":{},
code:0
}
那么我们可以统一在BaseController中定义一个方法
public final Object data(Onject object){
JSONObject json = new JSONObject();
json.put("code",0);
json.put("data",object);
return json;
}
每个Controller继承这个BaseController就可以了,在相应需要返回数据的地方return data(responseData)就行了。
2、统一处理异常信息
springmvc有提供注解@ExceptionHandler,当请求处理过程中抛出Exception异常的时候,将会委托该方法处理,我们在这个异常中处理日志记录和数据返回前端等工作。
@ExceptionHandler(value = {Exception.class})
public final Object error(Exception e){
logger.error("请求处理异常"+e.getMessage,e);
JSONObject json = new JSONObject();
json.put("code",-1);
json.put("data","系统异常");
return json;
}
当然这里还可以根据不同的异常信息,进行不同的处理。比如对于数据库的异常,我们可以向项目开发者发出警告信息,方便及时处理。对于不同的异常,可以返回不同的提示语,也方便开发自己知道大概的问题等。