1、返回消息統一定義文件CodeMsg.java
- public class CodeMsg {
- private int retCode;
- private String message;
- // 按照模塊定義CodeMsg
- // 通用異常
- public static CodeMsg SUCCESS = new CodeMsg(0,"success");
- public static CodeMsg SERVER_EXCEPTION = new CodeMsg(500100,"服務端異常");
- public static CodeMsg PARAMETER_ISNULL = new CodeMsg(500101,"輸入參數為空");
- // 業務異常
- public static CodeMsg USER_NOT_EXSIST = new CodeMsg(500102,"用戶不存在");
- public static CodeMsg ONLINE_USER_OVER = new CodeMsg(500103,"在線用戶數超出允許登錄的最大用戶限制。");
- public static CodeMsg SESSION_NOT_EXSIST = new CodeMsg(500104,"不存在離線session數據");
- public static CodeMsg NOT_FIND_DATA = new CodeMsg(500105,"查找不到對應數據");
- private CodeMsg(int retCode, String message) {
- this.retCode = retCode;
- this.message = message;
- }
- public int getRetCode() {
- return retCode;
- }
- public String getMessage() {
- return message;
- }
- public void setMessage(String message) {
- this.message = message;
- }
- }
2、返回結果集封裝:Result.java
- public class Result<T> {
- private String message;
- private int retCode;
- private T data;
- private Result(T data) {
- this.retCode = 0;
- this.message = "成功";
- this.data = data;
- }
- private Result(CodeMsg cm) {
- if(cm == null){
- return;
- }
- this.retCode = cm.getRetCode();
- this.message = cm.getMessage();
- }
- /**
- * 成功時候的調用
- * @return
- */
- public static <T> Result<T> success(T data){
- return new Result<T>(data);
- }
- /**
- * 成功,不需要傳入參數
- * @return
- */
- @SuppressWarnings("unchecked")
- public static <T> Result<T> success(){
- return (Result<T>) success("");
- }
- /**
- * 失敗時候的調用
- * @return
- */
- public static <T> Result<T> error(CodeMsg cm){
- return new Result<T>(cm);
- }
- /**
- * 失敗時候的調用,擴展消息參數
- * @param cm
- * @param msg
- * @return
- */
- public static <T> Result<T> error(CodeMsg cm,String msg){
- cm.setMessage(cm.getMessage()+"--"+msg);
- return new Result<T>(cm);
- }
- public T getData() {
- return data;
- }
- public String getMessage() {
- return message;
- }
- public int getRetCode() {
- return retCode;
- }
- }
3、返回結果使用:
- Map<String, Object> dataMap = new HashMap<String, Object>();
- dataMap.put("data", data);
- dataMap.put("userid", userid);
- result = Result.success(dataMap);// 成功,並返回數據和retCode和message
- // result = Result.success();// 成功,不返回數據,只返回retCode和message
- // result = Result.error(CodeMsg.SERVER_EXCEPTION);// 失敗返回錯誤信息
- // result = Result.error(CodeMsg.SERVER_EXCEPTION,e.toString());// 失敗返回錯誤+擴展錯誤信息
2018-05-15更新
日常開發中,將系統的返回msg可以封裝成枚舉(Emun)類型來處理。