这里提两点我项目中真正用到的建议,后面会陆续把其他的分享出来。
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; }当然这里还可以根据不同的异常信息,进行不同的处理。比如对于数据库的异常,我们可以向项目开发者发出警告信息,方便及时处理。对于不同的异常,可以返回不同的提示语,也方便开发自己知道大概的问题等。