日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

GitHub轻松阅读微服务实战项目流程详解【第三天:公共模块的设计与实现】

發(fā)布時間:2024/10/5 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 GitHub轻松阅读微服务实战项目流程详解【第三天:公共模块的设计与实现】 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

Three Day

  • 1.緩存
    • (1)賬戶中心緩存Key
    • (2)圖書資源緩存Key
    • (3)精品頁緩存key
    • (5)緩存操作類
  • 2.常量
    • (1)精品頁常量類
    • (2)jwt常量類
  • 3.圖書相關(guān)枚舉
    • (1)圖書分類枚舉類
    • (2)書單列表功能枚舉類
    • (3)圖書連載狀態(tài)枚舉類
  • 4.請求參數(shù)封裝
  • 5.統(tǒng)一返回結(jié)果
    • (1)Http狀態(tài)碼封裝
    • (2)操作結(jié)果封裝
    • (3)返回結(jié)果工具類
  • 6.POJO


github地址:https://github.com/Zealon159/light-reading-cloud


該模塊存放了一些公共的POJO類、工具類等

1.緩存

(1)賬戶中心緩存Key

public class RedisAccountKey {/** 圖書喜歡數(shù)緩存(hash) */public final static String ACCOUNT_CENTER_BOOK_LIKES_COUNT = "account-center:book-likes-count";}

(2)圖書資源緩存Key

public class RedisBookKey {/** 圖書信息緩存 */public static final String getBookKey(String bookId){return String.format("book-center:detail-%s",bookId);}/** 資源中心圖書章節(jié)緩存 */public static final String getBookChapterKey(String bookId){return String.format("book-center:chapter-%s",bookId);}/** 資源中心圖書章節(jié)列表緩存 */public static final String getBookChapterListKey(String bookId){return String.format("book-center:chapter-list-%s",bookId);}/** 資源中心圖書章節(jié)節(jié)點緩存 */public static final String getBookChapterNodeKey(Integer bookId){return String.format("book-center:chapter-node-%s",bookId);}/** 圖書資源中心feign-client緩存 */public static final class BookCenter {/** 資源中心圖書緩存 */public static final String getFeignClientBookKey(String bookId){return String.format("book-center:feign-client-book-%s",bookId);}} }

(3)精品頁緩存key

public class RedisHomepageKey {/*** 主頁緩存Key* @param type 類型1.主頁 2.男生 3.女生* @return*/public static final String getHomepageKey(Integer type){return String.format("home-page:index-%s", type);}/** 主頁Banner緩存Key */public static final String getBannerVoKey(Integer bannerId){return String.format("home-page:banner-vo-%s", bannerId);}/** 主頁書單DB緩存Key */public static final String getBooklistDbKey(Integer booklistId){return String.format("home-page:booklist-db-%s", booklistId);}/** 主頁書單緩存Key */public static final String getBooklistVoKey(Integer booklistId){return String.format("home-page:booklist-vo-%s", booklistId);}/** 主頁書單隨機(jī)緩存Key */public static final String getBooklistRandomVoKey(Integer booklistId){return String.format("home-page:booklist-random-vo-%s", booklistId);}/** 主頁書單圖書分頁更多 */public static final String getBooklistItemPagingKey(Integer booklistId){return String.format("home-page:booklist-item-paging-%s", booklistId);} }

(4)Redis緩存有效時間工具類

/*** Redis 緩存有效時間(單位:秒)*/ public class RedisExpire {// 1分鐘public static final long MINUTE = 60;// 2分鐘 60*2public static final long MINUTE_TWO = 120;// 3分鐘 60*3public static final long MINUTE_THR = 180;// 5分鐘 60*5public static final long MINUTE_FIV = 300;// 10分鐘 60*10public static final long MINUTE_TEN = 600;// 20分鐘public static final long MINUTE_TWENTY = 1200;// 30分鐘 60*30public static final long MINUTE_THIRTY = 1800;// 1小時 60*60*1public static final long HOUR = 3600;// 2小時 60*60*2public static final long HOUR_TWO = 7200;// 4小時public static final long HOUR_FOUR = 14400;// 1天 60*60*24public static final long DAY = 86400;// 2天 60*60*24*2public static final long DAY_TWO = 172800;// 1周 60*60*24*7public static final long WEEK = 604800;// 1月 60*60*24*30public static final long MONTH = 2592000;// 1年 60*60*24*365public static final long YEAR = 31536000;}

(5)緩存操作類

/*** cache 操作類* @author zealon*/ @Component public class RedisService {/** 日志 */private static final Logger LOGGER = LoggerFactory.getLogger(RedisService.class);/** 默認(rèn)緩存時間(10分鐘) */public static final Long DEFAULT_CACHE_TIME = RedisExpire.MINUTE_TEN;/** 操作字符串 */private ValueOperations<String, String> valueOperations;/** 操作hash */private HashOperations hashOperations;/** 操作list */private ListOperations listOperations;/** 操作set */private SetOperations setOperations;/** 操作有序set */private ZSetOperations zSetOperations;/** Redis模板 */@Autowiredprivate StringRedisTemplate stringRedisTemplate;@Autowiredprivate RedisTemplate redisTemplate;/*** 構(gòu)造方法初始化操作類*/@PostConstructprivate void inInit() {valueOperations = stringRedisTemplate.opsForValue();hashOperations = redisTemplate.opsForHash();listOperations = stringRedisTemplate.opsForList();setOperations = stringRedisTemplate.opsForSet();zSetOperations = stringRedisTemplate.opsForZSet();}/************************************** 公共方法 *//*** 刪除緩存* @param key 緩存key* @return Boolean 成功失敗*/public Boolean removeCache(String key) {Long begTime = System.currentTimeMillis();Boolean result = this.removeCacheComm(key);Long endTime = System.currentTimeMillis();LOGGER.info("刪除緩存耗時 key={} time={}", key, endTime - begTime);return result;}/*** 根據(jù)Key刪除緩存* @param key 緩存key* @return Boolean 成功失敗*/public Boolean removeCacheComm(String key) {Boolean hasExist = hasKey(key);if (hasExist) {return stringRedisTemplate.delete(key);} else {return true;}}/*** 刪除多個key** @param keys 緩存key* @return Long 刪除key的數(shù)量*/public Long removeList(Set<String> keys) {if (StringUtils.isEmpty(keys)) {return null;}return stringRedisTemplate.delete(keys);}/*** 獲取匹配的key** @param keyRegular key正則表達(dá)式* @return Set<String> 匹配的可以列表*/public Set<String> getKeyRegualr(String keyRegular) {if (StringUtils.isEmpty(keyRegular)) {return null;}return stringRedisTemplate.keys(keyRegular);}/*** 設(shè)置過期時間** @param key 緩存key* @param time 緩存時間*/public void setExpire(final String key, Long time) {stringRedisTemplate.expire(key, time, TimeUnit.SECONDS);}/*** 獲取緩存時間剩余時間** @param key 緩存key* @return long 緩存剩余時間*/public Long getExpire(final String key) {return stringRedisTemplate.getExpire(key, TimeUnit.SECONDS);}/*** 判斷key是否存在** @param key 緩存key* @return boolean 成功失敗*/public Boolean hasKey(String key) {return stringRedisTemplate.hasKey(key);}/************************************** 公共方法 End *//************************************** String處理(實體轉(zhuǎn)化為json字符串) *//*** 從緩存獲取值** @param key 緩存key* @param c 參數(shù)類型* @param <T> 參數(shù)對象* @return T 返回對象*/public <T> T getCache(String key, Class<T> c) {String cache = getCache(key);return JSONObject.parseObject(cache, c);}public <T> List getCacheForList(String key, Class<T> c) {String cache = getCache(key);return JSONObject.parseArray(cache, c);}/*** 從緩存中獲取** @param key 緩存key* @param typeOff 對象類型* @return Object 返回實體*/public Object getCache(String key, Type typeOff) {return JSONObject.parseObject(getCache(key), typeOff);}/*** 獲取緩存信息** @param key 緩存key* @return String*/public String getCache(String key) {return valueOperations.get(key);}/*** 設(shè)置緩存值沒有設(shè)置過期時間** @param key 緩存key* @param value 緩存值*/public void setCache(String key, String value) {if (StringUtils.isEmpty(key) || StringUtils.isEmpty(value)) {return;}valueOperations.set(key, value);}/*** 設(shè)置緩存過期時間** @param key 緩存KEY* @param value 緩存值*/public void setExpireCacheDefault(final String key, final String value) {if (StringUtils.isEmpty(key) || StringUtils.isEmpty(value)) {return;}valueOperations.set(key, value, DEFAULT_CACHE_TIME, TimeUnit.SECONDS);}/*** 設(shè)置緩存過期時間** @param key 緩存KEY* @param value 緩存值* @param time 緩存時間*/public void setExpireCache(final String key, final String value, Long time) {if (StringUtils.isEmpty(key) || StringUtils.isEmpty(value) || StringUtils.isEmpty(time) || time <= 0) {return;}valueOperations.set(key, value, time, TimeUnit.SECONDS);}/************************************** String處理(實體轉(zhuǎn)化為json字符串) End *//************************************** Object處理 *//*** 添加緩存** @param key 緩存KEY* @param obj 緩存對象*/public void setCache(String key, Object obj) {setCache(key, JSONObject.toJSONString(obj));}/*** 設(shè)置緩存并添加默認(rèn)過期時間** @param key 緩存KEY* @param obj 添加的緩存對象*/public void setExpireCacheDefault(final String key, final Object obj) {if (StringUtils.isEmpty(key) || StringUtils.isEmpty(obj)) {return;}setExpireCache(key, obj, DEFAULT_CACHE_TIME);}/*** 設(shè)置緩存并添加緩存過期時間** @param key 緩存KEY* @param obj 緩存對象* @param time 緩存時間*/public void setExpireCache(final String key, final Object obj, Long time) {if (StringUtils.isEmpty(key) || StringUtils.isEmpty(obj) || StringUtils.isEmpty(time)) {return;}this.setExpireCache(key, JSONObject.toJSONString(obj), time);}/************************************** Object處理 End *//************************************** List處理 *//*** 添加緩存** @param key 緩存KEY* @param list 緩存列表值*/public void rightPushAll(String key, List list) {if (StringUtils.isEmpty(key) || StringUtils.isEmpty(list)) {return;}List<String> redisList = new ArrayList<>();if (list != null && !list.isEmpty() && list.size() > 0) {for (Object obj : list) {if (obj != null) {redisList.add(JSONObject.toJSONString(obj));}}}listOperations.rightPushAll(key, redisList);}/*** 添加緩存并設(shè)置過期時間 有默認(rèn)值** @param key 緩存KEY* @param list 緩存列表值*/public void rightPushAllExpireDefault(String key, List list) {if (StringUtils.isEmpty(key) || StringUtils.isEmpty(list)) {return;}this.rightPushAll(key, list);setExpire(key, DEFAULT_CACHE_TIME);}/*** 添加緩存并設(shè)置過期時間** @param key 緩存KEY* @param list 緩存列表* @param time 緩存時間*/public void rightPushAllExpire(String key, List list, Long time) {this.rightPushAll(key, list);setExpire(key, time);}/*** 添加緩存** @param key 緩存KEY* @param list 緩存列表*/public void leftPushAll(String key, List list) {if (StringUtils.isEmpty(key) || StringUtils.isEmpty(list)) {return;}List<String> redisList = new ArrayList<>();if (list != null && !list.isEmpty() && list.size() > 0) {for (Object obj : list) {if (obj != null) {redisList.add(JSONObject.toJSONString(obj));}}}listOperations.leftPushAll(key, redisList);}/*** 添加緩存并設(shè)置過期時間 有默認(rèn)值** @param key 緩存KEY* @param list 緩存列表*/public void leftPushAllExpireDefault(String key, List list) {if (StringUtils.isEmpty(key) || StringUtils.isEmpty(list)) {return;}this.leftPushAll(key, list);setExpire(key, DEFAULT_CACHE_TIME);}/*** 添加緩存并設(shè)置過期時間** @param key 緩存KEY* @param list 緩存列表* @param time 緩存時間*/public void leftPushAllExpire(String key, List list, Long time) {this.leftPushAll(key, list);setExpire(key, time);}/*** 從緩存獲取數(shù)據(jù)** @param key 緩存KEY* @param c 值類型* @param <T> 值對象* @return List<T> 返回對象列表*/public <T> List<T> getRedisList(String key, Class<T> c) {List<String> listStr = listOperations.range(key, 0, -1);if (listStr.isEmpty()) {return null;}List<T> backList = new ArrayList<>();for (String str : listStr) {if (!StringUtils.isEmpty(str)) {backList.add(JSONObject.parseObject(str, c));}}return backList;}/************************************** List處理 End *//************************************** Hash處理 *//*** 獲取Hash filed值* @param key* @param field* @param c* @param <T>* @return*/public <T> T getHashVal(String key, String field, Class<T> c){Object val = this.hashOperations.get(key, field);if (val == null) {return null;}return JSONObject.parseObject(val.toString(), c);}public <T> T getHashObject(String key, String field, Class<T> c){Object val = this.hashOperations.get(key, field);if (val == null) {return null;}return (T) val;}public <T> List<T> getHashListVal(String key, String field, Class<T> c){Object val = this.hashOperations.get(key, field);if (val == null) {return null;}return JSONObject.parseArray(val.toString(), c);}public void setHashValExpire(String key, String field, Object val, Long time){this.hashOperations.put(key, field, JSONObject.toJSONString(val));this.setExpire(key, time);}public void setHashValsExpire(String key, HashMap val, Long time){this.hashOperations.putAll(key, val);this.setExpire(key, time);}public boolean hashHasKey(String key, String field){return this.hashOperations.hasKey(key, field);}public void hashIncrement(String key, String field, Integer val){this.hashOperations.increment(key, field, val);}/************************************** Hash處理 End *//************************************** zSet處理 End *//*** 批量保存到有序集合* @param key* @param list*/public void zSetAddExpireDefault(String key, List list) {if (StringUtils.isEmpty(key) || StringUtils.isEmpty(list)) {return;}Double index = 1d;Set<ZSetOperations.TypedTuple<String>> tuples = new HashSet<>();if (!list.isEmpty() && list.size() > 0) {for (Object obj : list) {if (obj != null) {String value = JSONObject.toJSONString(obj);ZSetOperations.TypedTuple<String> typedTuple = new DefaultTypedTuple<>(value, index);tuples.add(typedTuple);index++;}}}zSetOperations.add(key,tuples);setExpire(key, DEFAULT_CACHE_TIME);}/*** 范圍查詢,返回集合* @param key* @param start* @param end* @param c* @return*/public <T> List<T> zSetRange(String key,long start,long end,Class<T> c){List<T> backList = new ArrayList<>();// 緩存獲取數(shù)據(jù)Set<String> data = zSetOperations.range(key, start, end);if (data == null || data.isEmpty()) {return null;}// 轉(zhuǎn)換為ListIterator<String> iterator = data.iterator();while (iterator.hasNext()){String jsonStr = iterator.next();if (!StringUtils.isEmpty(jsonStr)) {backList.add(JSONObject.parseObject(jsonStr, c));}}return backList;}/*** 獲取 zSet 長度* @param key* @return*/public Long zSetGetSize(String key){return zSetOperations.size(key);}/*** 分頁獲取 zSet 數(shù)據(jù)集合* @param key* @param c* @param pageNo* @param pageSize* @return*/public <T> List<T> zSetRangeByPage(String key, Class<T> c, Integer pageNo, Integer pageSize) {long start = 0;if (pageNo > 1) {start = (pageNo - 1l) * pageSize;}long end = pageNo * pageSize - 1;return zSetRange(key,start,end,c);}/************************************** zSet處理 End */ }

2.常量

(1)精品頁常量類

public class CategoryConstant {public static Map<Integer,String> categorys;static {categorys = new HashMap<>();categorys.put(1100, "東方玄幻");categorys.put(1200, "都市小說");categorys.put(1300, "西方玄幻");categorys.put(1400, "武俠仙俠");categorys.put(1500, "歷史穿越");categorys.put(1600, "科幻未來");categorys.put(1700, "網(wǎng)游競技");categorys.put(1800, "懸疑驚悚");categorys.put(2100, "古代言情");categorys.put(2200, "幻想言情");categorys.put(2300, "都市言情");categorys.put(2400, "總裁豪門");categorys.put(2500, "青春校園");categorys.put(2600, "唯美同人");categorys.put(2700, "歷史穿越");categorys.put(2800, "唯美同人");categorys.put(3100, "文學(xué)小說");categorys.put(3200, "經(jīng)典名著");} }

(2)jwt常量類

public class JwtConstant {/** JWT秘鑰 */public final static String SECRET_KEY = "someday";/** 過期時間天數(shù) */public final static int EXPIRE_DAY = 7;}

3.圖書相關(guān)枚舉

(1)圖書分類枚舉類

public enum BookCategoryEnum {CATEGORY_1(1,"都市小說"),CATEGORY_2(2,"東方玄幻"),CATEGORY_3(3,"武俠仙俠"),CATEGORY_4(4,"懸疑驚悚"),CATEGORY_5(5,"唯美同人"),CATEGORY_6(6,"網(wǎng)游競技"),CATEGORY_7(7,"科幻未來"),CATEGORY_8(8,"歷史穿越");private Integer value;private String name;BookCategoryEnum(Integer value, String name) {this.value = value;this.name = name;}public Integer getValue() {return value;}public String getName() {return name;} }

(2)書單列表功能枚舉類

public enum BooklistMoreTypeEnum {NOTHING(1,"無"),MORE(2,"更多"),EXCHANGE(3,"換一換"),LOADING(4,"加載");private int value;private String name;BooklistMoreTypeEnum(int value, String name) {this.value = value;this.name = name;}public int getValue() {return value;}public String getName() {return name;} }

(3)圖書連載狀態(tài)枚舉類

public enum BookSerialStatusEnum {SERIAL(1,"連載"),SUSPEND(2,"暫更"),END(3,"完結(jié)");private Integer value;private String name;BookSerialStatusEnum(Integer value, String name) {this.value = value;this.name = name;}public Integer getValue() {return value;}public String getName() {return name;} }

4.請求參數(shù)封裝

public class RequestParams extends HashMap {private static final Logger LOGGER = LoggerFactory.getLogger(RequestParams.class);/*** 獲取整型參數(shù)值* @param paramName* @return*/public Integer getIntValue(String paramName){Integer value = 0;Object object = this.get(paramName);if (null == object) {return value;}try{value = Integer.parseInt(this.get(paramName).toString());} catch (Exception ex){value = 0;LOGGER.error("獲取參數(shù){}轉(zhuǎn)換整型異常!{}", paramName, ex);}return value;}/*** 獲取字符串參數(shù)值* @param paramName* @return*/public String getStringValue(String paramName){String value = "";Object object = this.get(paramName);if (null == object) {return value;}return object.toString();} }

5.統(tǒng)一返回結(jié)果

(1)Http狀態(tài)碼封裝

/*** * http 狀態(tài)碼* ----------------------------------------------------------------------------* 200 OK - [GET]:服務(wù)器成功返回用戶請求的數(shù)據(jù),該操作是冪等的(Idempotent)。* 400 INVALID REQUEST - [POST/PUT/PATCH]:用戶發(fā)出的請求有錯誤,服務(wù)器沒有進(jìn)行新建或修改數(shù)據(jù)的操作,該操作是冪等的。* 401 Unauthorized - [*]:表示用戶沒有權(quán)限(令牌、用戶名、密碼錯誤)。* 403 Forbidden - [*] 表示用戶得到授權(quán)(與401錯誤相對),但是訪問是被禁止的。* 404 NOT FOUND - [*]:用戶發(fā)出的請求針對的是不存在的記錄,服務(wù)器沒有進(jìn)行操作,該操作是冪等的。* 406 Not Acceptable - [GET]:用戶請求的格式不可得(比如用戶請求JSON格式,但是只有XML格式)。* 410 Gone -[GET]:用戶請求的資源被永久刪除,且不會再得到的。* 422 Unprocesable entity - [POST/PUT/PATCH] 當(dāng)創(chuàng)建一個對象時,發(fā)生一個驗證錯誤。* 500 INTERNAL SERVER ERROR - [*]:服務(wù)器發(fā)生錯誤,用戶將無法判斷發(fā)出的請求是否成功。* 600 UN_KNOW_ERROR - 未知錯誤* ----------------------------------------------------------------------------*/ public enum HttpCodeEnum {OK(200,"操作成功"),INVALID_REQUEST(400,"參數(shù)錯誤"),UNAUTHORIZED(401,"沒有權(quán)限"),FORBIDDEN(403,"禁止訪問"),NOT_FOUND(404,"資源不存在"),NOT_ACCEPTABLE(406,"請求的格式不正確"),GONE(410,"數(shù)據(jù)被刪除"),UNPROCESABLE_ENTITY(422,"參數(shù)驗證錯誤"),INTERNAL_SERVER_ERROR(500,"服務(wù)器發(fā)生錯誤"),UN_KNOW_ERROR(500,"未知錯誤"),FAIL(501,"操作失敗"),MODEL_NOT_EXIST(1000, "模型不存在"),VERIFICATION_FAILED(1001, "業(yè)務(wù)邏輯驗證未通過"),USERNAME_OR_PASSWORD_ERR(2000,"用戶未登錄或token已失效"),DELETE_DEFAULT_PHOTO_ERR(2001,"默認(rèn)頭像不可刪除"),AUTH_EXPIRED(3000,"認(rèn)證到期"),TOKEN_ERR(3001, "token無效");private final int code;private final String message;HttpCodeEnum(final int code, final String message){this.code=code;this.message=message;}public String getMessage() {return message;}public int getCode() {return code;}}

(2)操作結(jié)果封裝

public class Result<T> implements Serializable {private static final long serialVersionUID = 1L;private int code;private String msg;private T data;public Result(int code, String msg, T data) {this.code = code;this.msg = msg;this.data = data;}public Result(int code, String msg) {this.code = code;this.msg = msg;}public Result() {}/*** 構(gòu)建消息內(nèi)容* @param msg* @return*/public Result buildMessage(String msg){this.setMsg(msg);return this;}/*** 構(gòu)建消息data的值,key默認(rèn)為data* @param obj data值* @return*/public Result buildData(T obj){this.setData(obj);return this;}public int getCode() {return code;}public void setCode(int code) {this.code = code;}public String getMsg() {return msg;}public void setMsg(String msg) {this.msg = msg;}public T getData() {return data;}public void setData(T data) {this.data = data;} }

(3)返回結(jié)果工具類

ResultUtil {/*** 請求成功* @return*/public static Result success() {return new Result(HttpCodeEnum.OK.getCode(),HttpCodeEnum.OK.getMessage());}/*** 請求成功(無消息)* @return*/public static Result successAndNoMsg() {return new Result(HttpCodeEnum.OK.getCode(),"");}/*** 成功請求** @param data* @return*/public static Result success(Object data) {return new Result(HttpCodeEnum.OK.getCode(), HttpCodeEnum.OK.getMessage() , data);}/*** 成功請求(無消息)** @param data* @return*/public static Result successAndNoMsg(Object data) {return new Result(HttpCodeEnum.OK.getCode(), "", data);}/*** 操作失敗* @return*/public static Result fail() {return new Result(HttpCodeEnum.FAIL.getCode(), HttpCodeEnum.FAIL.getMessage());}/*** 操作失敗* @return*/public static Result fail(Object data) {return new Result(HttpCodeEnum.FAIL.getCode(), HttpCodeEnum.FAIL.getMessage() ,data);}/*** 服務(wù)器錯誤* @return*/public static Result error() {return new Result(HttpCodeEnum.INTERNAL_SERVER_ERROR.getCode(),HttpCodeEnum.INTERNAL_SERVER_ERROR.getMessage());}/*** 服務(wù)器錯誤* @param data* @return*/public static Result error(Object data) {return new Result(HttpCodeEnum.INTERNAL_SERVER_ERROR.getCode(),HttpCodeEnum.INTERNAL_SERVER_ERROR.getMessage(), data);}/*** 參數(shù)錯誤* @return*/public static Result paramError() {return new Result(HttpCodeEnum.INVALID_REQUEST.getCode(), HttpCodeEnum.INVALID_REQUEST.getMessage());}/*** 參數(shù)錯誤* @param data* @return*/public static Result paramError(Object data) {return new Result(HttpCodeEnum.INVALID_REQUEST.getCode(), HttpCodeEnum.INVALID_REQUEST.getMessage(), data);}/*** 認(rèn)證到期* @return*/public static Result authExpired() {return new Result(HttpCodeEnum.AUTH_EXPIRED.getCode(), HttpCodeEnum.AUTH_EXPIRED.getMessage());}/*** 沒有權(quán)限* @return*/public static Result unAuthorized() {return new Result(HttpCodeEnum.UNAUTHORIZED.getCode(), HttpCodeEnum.UNAUTHORIZED.getMessage());}/*** 沒有權(quán)限* @param data* @return*/public static Result unAuthorized(Object data) {return new Result(HttpCodeEnum.UNAUTHORIZED.getCode(),HttpCodeEnum.UNAUTHORIZED.getMessage(),data);}/*** 禁止訪問* @return*/public static Result forbidden() {return new Result(HttpCodeEnum.FORBIDDEN.getCode(),HttpCodeEnum.FORBIDDEN.getMessage());}/*** 禁止訪問* @param data* @return*/public static Result forbidden(Object data) {return new Result(HttpCodeEnum.FORBIDDEN.getCode(),HttpCodeEnum.FORBIDDEN.getMessage(), data);}/*** 資源不存在* @return*/public static Result notFound() {return new Result(HttpCodeEnum.NOT_FOUND.getCode(),HttpCodeEnum.NOT_FOUND.getMessage());}/*** 資源不存在* @param data* @return*/public static Result notFound(Object data) {return new Result(HttpCodeEnum.NOT_FOUND.getCode(),HttpCodeEnum.NOT_FOUND.getMessage(), data);}/*** 請求的格式不正確* @return*/public static Result notAcceptable() {return new Result(HttpCodeEnum.NOT_ACCEPTABLE.getCode(),HttpCodeEnum.NOT_ACCEPTABLE.getMessage());}/*** 請求的格式不正確* @param data* @return*/public static Result notAcceptable(Object data) {return new Result(HttpCodeEnum.NOT_ACCEPTABLE.getCode(),HttpCodeEnum.NOT_ACCEPTABLE.getMessage(), data);}/*** 數(shù)據(jù)已經(jīng)被刪除* @return*/public static Result gone() {return new Result(HttpCodeEnum.GONE.getCode(),HttpCodeEnum.GONE.getMessage());}/*** 數(shù)據(jù)已經(jīng)被刪除* @param data* @return*/public static Result gone(Object data) {return new Result(HttpCodeEnum.GONE.getCode(),HttpCodeEnum.GONE.getMessage(), data);}/*** 實體參數(shù)校驗錯誤* @return*/public static Result unprocesableEntity() {return new Result(HttpCodeEnum.UNPROCESABLE_ENTITY.getCode(),HttpCodeEnum.UNPROCESABLE_ENTITY.getMessage());}/*** 實體參數(shù)校驗錯誤* @param data* @return*/public static Result unprocesableEntity(Object data) {return new Result(HttpCodeEnum.UNPROCESABLE_ENTITY.getCode(),HttpCodeEnum.UNPROCESABLE_ENTITY.getMessage(), data);}/*** 未知錯誤* @return*/public static Result unKnowError() {return new Result(HttpCodeEnum.UN_KNOW_ERROR.getCode(),HttpCodeEnum.UN_KNOW_ERROR.getMessage());}/*** 未知錯誤* @param data* @return*/public static Result unKnowError(Object data) {return new Result(HttpCodeEnum.UN_KNOW_ERROR.getCode(),HttpCodeEnum.UN_KNOW_ERROR.getMessage(), data);}/*** 業(yè)務(wù)邏輯驗證未通過* @return*/public static Result verificationFailed() {return new Result(HttpCodeEnum.VERIFICATION_FAILED.getCode(),HttpCodeEnum.VERIFICATION_FAILED.getMessage());}/*** 業(yè)務(wù)邏輯驗證未通過* @param data* @return*/public static Result verificationFailed(Object data) {return new Result(HttpCodeEnum.VERIFICATION_FAILED.getCode(),HttpCodeEnum.VERIFICATION_FAILED.getMessage(), data);}/*** 自定義返回* @param e* @return*/public static Result custom(HttpCodeEnum e) {return new Result(e.getCode(),e.getMessage());}/*** 自定義返回* @param error* @return*/public static Result custom(int code,String error) {return new Result(code,error);}/*** 自定義返回* @param error* @param data* @return*/public static Result custom(int code,String error,Object data) {return new Result(code,error,data);}}

6.POJO

公用的實體類不再多說!!!

總結(jié)

以上是生活随笔為你收集整理的GitHub轻松阅读微服务实战项目流程详解【第三天:公共模块的设计与实现】的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。