1.json轉(zhuǎn)換工具
package com.taotao.utils;? import java.util.List;? import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.JavaType;? import com.fasterxml.jackson.databind.JsonNode;? import com.fasterxml.jackson.databind.ObjectMapper;/** * json轉(zhuǎn)換工具類 */publicclassJsonUtils{// 定義jackson對(duì)象 privatestaticfinalObjectMapper MAPPER =newObjectMapper();/** * 將對(duì)象轉(zhuǎn)換成json字符串。? *
Title: pojoToJson
? *Description:
? *@paramdata *@return*/publicstaticString objectToJson(Object data) {try{ String string = MAPPER.writeValueAsString(data);returnstring; }catch(JsonProcessingException e) {? e.printStackTrace(); }returnnull; }/** * 將json結(jié)果集轉(zhuǎn)化為對(duì)象? *@paramjsonData json數(shù)據(jù)? *@paramclazz 對(duì)象中的object類型? *@return*/publicstatic T jsonToPojo(String jsonData,ClassbeanType){try{ T t = MAPPER.readValue(jsonData, beanType);returnt; }catch(Exceptione) {? e.printStackTrace(); }returnnull; }/** * 將json數(shù)據(jù)轉(zhuǎn)換成pojo對(duì)象list? *Title: jsonToList
? *Description:
? *@paramjsonData? *@parambeanType? *@return*/publicstaticList jsonToList(String jsonData,ClassbeanType){? JavaType javaType = MAPPER.getTypeFactory().constructParametricType(List.class, beanType);try{Listlist= MAPPER.readValue(jsonData, javaType); .returnlist;? }catch(Exceptione) { . e.printStackTrace(); }returnnull; } }
2.cookie的讀寫
package com.taotao.common.utils;importjava.io.UnsupportedEncodingException;importjava.net.URLDecoder;importjava.net.URLEncoder;importjavax.servlet.http.Cookie;importjavax.servlet.http.HttpServletRequest;importjavax.servlet.http.HttpServletResponse;/** *.* Cookie 工具類 **/publicfinalclassCookieUtils{/** *得到Cookie的值, 不編碼 . ** @param request .* @param cookieName *@return */publicstaticStringgetCookieValue(HttpServletRequest request,StringcookieName) {returngetCookieValue(request, cookieName,false); }/** . *得到Cookie的值,* *@param request * @param cookieName* @return . */publicstaticStringgetCookieValue(HttpServletRequest request,StringcookieName, boolean isDecoder) {? Cookie[] cookieList = request.getCookies();if(cookieList ==null|| cookieName ==null) {returnnull; }StringretValue =null;try{for(inti =0; i < cookieList.length; i++) { .if(cookieList[i].getName().equals(cookieName)) {if(isDecoder) {? retValue = URLDecoder.decode(cookieList[i].getValue(),"UTF-8");? }else{? retValue = cookieList[i].getValue(); }break; } }? }catch(UnsupportedEncodingException e) {? e.printStackTrace(); }returnretValue; }/** * 得到Cookie的值, **@param request* @param cookieName *@return */publicstaticStringgetCookieValue(HttpServletRequest request,StringcookieName,StringencodeString) {? Cookie[] cookieList = request.getCookies();if(cookieList ==null|| cookieName ==null) {returnnull; }StringretValue =null;try{for(inti =0; i < cookieList.length; i++) {if(cookieList[i].getName().equals(cookieName)) {? retValue = URLDecoder.decode(cookieList[i].getValue(), encodeString);break; } }? }catch(UnsupportedEncodingException e) {? e.printStackTrace(); }returnretValue; }/** *設(shè)置Cookie的值 不設(shè)置生效時(shí)間默認(rèn)瀏覽器關(guān)閉即失效,也不編碼 */publicstaticvoidsetCookie(HttpServletRequest request, HttpServletResponse response,StringcookieName,StringcookieValue) {? setCookie(request, response, cookieName, cookieValue,-1); . }/** *設(shè)置Cookie的值 在指定時(shí)間內(nèi)生效,但不編碼 */publicstaticvoidsetCookie(HttpServletRequest request, HttpServletResponse response,StringcookieName,StringcookieValue,intcookieMaxage) {? setCookie(request, response, cookieName, cookieValue, cookieMaxage,false); }/** *設(shè)置Cookie的值 不設(shè)置生效時(shí)間,但編碼 */publicstaticvoidsetCookie(HttpServletRequest request, HttpServletResponse response,StringcookieName,StringcookieValue, boolean isEncode) {? setCookie(request, response, cookieName, cookieValue,-1, isEncode); }/** *設(shè)置Cookie的值 在指定時(shí)間內(nèi)生效, 編碼參數(shù) */publicstaticvoidsetCookie(HttpServletRequest request, HttpServletResponse response,StringcookieName,StringcookieValue,intcookieMaxage, boolean isEncode) {? doSetCookie(request, response, cookieName, cookieValue, cookieMaxage, isEncode); }/** *設(shè)置Cookie的值 在指定時(shí)間內(nèi)生效, 編碼參數(shù)(指定編碼) */publicstaticvoidsetCookie(HttpServletRequest request, HttpServletResponse response,StringcookieName,StringcookieValue,intcookieMaxage,StringencodeString) {? doSetCookie(request, response, cookieName, cookieValue, cookieMaxage, encodeString); }/** *刪除Cookie帶cookie域名 */publicstaticvoiddeleteCookie(HttpServletRequest request, HttpServletResponse response,StringcookieName) {? doSetCookie(request, response, cookieName,"",-1,false); }/** *設(shè)置Cookie的值,并使其在指定時(shí)間內(nèi)生效* *@param cookieMaxage cookie生效的最大秒數(shù) */privatestaticfinalvoiddoSetCookie(HttpServletRequest request, HttpServletResponse response,StringcookieName,StringcookieValue,intcookieMaxage, boolean isEncode) {try{if(cookieValue ==null) {? cookieValue =""; }elseif(isEncode) {? cookieValue = URLEncoder.encode(cookieValue,"utf-8"); }? Cookie cookie =newCookie(cookieName, cookieValue);if(cookieMaxage >0)? cookie.setMaxAge(cookieMaxage);if(null!= request) {// 設(shè)置域名的cookie StringdomainName = getDomainName(request);? System.out.println(domainName);if(!"localhost".equals(domainName)) {? cookie.setDomain(domainName); } }? cookie.setPath("/"); response.addCookie(cookie); }catch(Exception e) {? e.printStackTrace(); } }/** *設(shè)置Cookie的值爆捞,并使其在指定時(shí)間內(nèi)生效* *@param cookieMaxage cookie生效的最大秒數(shù) */privatestaticfinalvoiddoSetCookie(HttpServletRequest request, HttpServletResponse response,StringcookieName,StringcookieValue,intcookieMaxage,StringencodeString) {try{if(cookieValue ==null) { cookieValue =""; }else{? cookieValue = URLEncoder.encode(cookieValue, encodeString); }? Cookie cookie =newCookie(cookieName, cookieValue);if(cookieMaxage >0)? cookie.setMaxAge(cookieMaxage);if(null!= request) {// 設(shè)置域名的cookie StringdomainName = getDomainName(request);? System.out.println(domainName);if(!"localhost".equals(domainName)) {? cookie.setDomain(domainName); } }? cookie.setPath("/"); response.addCookie(cookie); }catch(Exception e) {? e.printStackTrace(); } }/** *得到cookie的域名 */privatestaticfinalStringgetDomainName(HttpServletRequest request) {StringdomainName =null;StringserverName = request.getRequestURL().toString();if(serverName ==null|| serverName.equals("")) {? domainName =""; }else{? serverName = serverName.toLowerCase();? serverName = serverName.substring(7);finalintend = serverName.indexOf("/");? serverName = serverName.substring(0, end);finalString[] domains = serverName.split("\\.");intlen = domains.length;if(len >3) {// www.xxx.com.cn domainName ="."+ domains[len -3] +"."+ domains[len -2] +"."+ domains[len -1]; }elseif(len <=3&& len >1) {// xxx.com or xxx.cn domainName ="."+ domains[len -2] +"."+ domains[len -1]; }else{? domainName = serverName; } }if(domainName !=null&& domainName.indexOf(":") >0) {String[] ary = domainName.split("\\:");? domainName = ary[0]; }returndomainName; } }
3.HttpClientUtil
packagecom.taotao.utils;importjava.io.IOException;importjava.net.URI;importjava.util.ArrayList;importjava.util.List;importjava.util.Map;importorg.apache.http.NameValuePair;importorg.apache.http.client.entity.UrlEncodedFormEntity;importorg.apache.http.client.methods.CloseableHttpResponse;importorg.apache.http.client.methods.HttpGet;importorg.apache.http.client.methods.HttpPost;importorg.apache.http.client.utils.URIBuilder;importorg.apache.http.entity.ContentType;importorg.apache.http.entity.StringEntity;importorg.apache.http.impl.client.CloseableHttpClient;importorg.apache.http.impl.client.HttpClients;importorg.apache.http.message.BasicNameValuePair;importorg.apache.http.util.EntityUtils;publicclass HttpClientUtil {publicstaticStringdoGet(Stringurl, Map param) {// 創(chuàng)建Httpclient對(duì)象 CloseableHttpClient httpclient = HttpClients.createDefault();StringresultString ="";? CloseableHttpResponse response =null;try{// 創(chuàng)建uri URIBuilder builder = new URIBuilder(url); if(param !=null) {for(Stringkey: param.keySet()) {? builder.addParameter(key, param.get(key)); } }? URI uri = builder.build();// 創(chuàng)建http GET請(qǐng)求 HttpGet httpGet = new HttpGet(uri); // 執(zhí)行請(qǐng)求 response = httpclient.execute(httpGet); // 判斷返回狀態(tài)是否為200 if (response.getStatusLine().getStatusCode() == 200) { resultString = EntityUtils.toString(response.getEntity(),"UTF-8"); }? }catch(Exception e) {? e.printStackTrace(); }finally{try{if(response !=null) { response.close(); }? httpclient.close();? }catch(IOException e) { e.printStackTrace(); } }returnresultString; }publicstaticStringdoGet(Stringurl) {returndoGet(url,null); }publicstaticStringdoPost(Stringurl, Map param) {// 創(chuàng)建Httpclient對(duì)象 CloseableHttpClient httpClient = HttpClients.createDefault();? CloseableHttpResponse response =null;StringresultString ="";try{// 創(chuàng)建Http Post請(qǐng)求 HttpPost httpPost =newHttpPost(url);// 創(chuàng)建參數(shù)列表 if(param !=null) {? List paramList =newArrayList<>();for(Stringkey: param.keySet()) { paramList.add(newBasicNameValuePair(key, param.get(key))); }// 模擬表單 UrlEncodedFormEntity entity =newUrlEncodedFormEntity(paramList);? httpPost.setEntity(entity); }// 執(zhí)行http請(qǐng)求 response = httpClient.execute(httpPost);? resultString = EntityUtils.toString(response.getEntity(),"utf-8");? }catch(Exception e) { e.printStackTrace(); . }finally{try{ response.close();? }catch(IOException e) {// TODO Auto-generated catch block e.printStackTrace(); } }returnresultString; }publicstaticStringdoPost(Stringurl) {returndoPost(url,null); }publicstaticStringdoPostJson(Stringurl,Stringjson) {// 創(chuàng)建Httpclient對(duì)象 CloseableHttpClient httpClient = HttpClients.createDefault();? CloseableHttpResponse response =null;StringresultString ="";try{// 創(chuàng)建Http Post請(qǐng)求 HttpPost httpPost =newHttpPost(url);// 創(chuàng)建請(qǐng)求內(nèi)容 StringEntity entity =newStringEntity(json, ContentType.APPLICATION_JSON);? httpPost.setEntity(entity);// 執(zhí)行http請(qǐng)求 response = httpClient.execute(httpPost);? resultString = EntityUtils.toString(response.getEntity(),"utf-8");? }catch(Exception e) { e.printStackTrace(); }finally{try{ response.close(); }catch(IOException e) {// TODO Auto-generated catch block e.printStackTrace(); } }returnresultString; } }
4.FastDFSClient工具類
packagecn.itcast.fastdfs.cliennt;importorg.csource.common.NameValuePair;importorg.csource.fastdfs.ClientGlobal;importorg.csource.fastdfs.StorageClient1;importorg.csource.fastdfs.StorageServer;importorg.csource.fastdfs.TrackerClient;importorg.csource.fastdfs.TrackerServer;publicclass FastDFSClient {privateTrackerClient trackerClient =null;privateTrackerServer trackerServer =null;privateStorageServer storageServer =null;privateStorageClient1 storageClient =null;publicFastDFSClient(Stringconf)throwsException {if(conf.contains("classpath:")) {? conf = conf.replace("classpath:",this.getClass().getResource("/").getPath()); }? ClientGlobal.init(conf);? trackerClient =newTrackerClient();? trackerServer = trackerClient.getConnection();? storageServer =null; storageClient =newStorageClient1(trackerServer, storageServer); }/** * 上傳文件方法
* <p>Title: uploadFile</p>
* <p>Description: </p>
* @param fileName 文件全路徑
* @param extName 文件擴(kuò)展名笼踩,不包含(.)
* @param metas 文件擴(kuò)展信息 * @return * @throws Exception */publicStringuploadFile(StringfileName,StringextName, NameValuePair[] metas)throwsException {Stringresult = storageClient.upload_file1(fileName, extName, metas);returnresult; }publicStringuploadFile(StringfileName)throwsException {returnuploadFile(fileName,null,null); }publicStringuploadFile(StringfileName,StringextName)throwsException {returnuploadFile(fileName, extName,null); }/** * 上傳文件方法
* <p>Title: uploadFile</p>
* <p>Description: </p>
* @param fileContent 文件的內(nèi)容蚕苇,字節(jié)數(shù)組
* @param extName 文件擴(kuò)展名
* @param metas 文件擴(kuò)展信息
* @return
* @throws Exception */publicStringuploadFile(byte[] fileContent,StringextName, NameValuePair[] metas)throwsException {Stringresult = storageClient.upload_file1(fileContent, extName, metas);returnresult; }publicStringuploadFile(byte[] fileContent)throwsException {returnuploadFile(fileContent,null,null); }publicStringuploadFile(byte[] fileContent,StringextName)throwsException {returnuploadFile(fileContent, extName,null); } } publicclass FastDFSTest {? @TestpublicvoidtestFileUpload()throwsException {// 1恬涧、加載配置文件恢氯,配置文件中的內(nèi)容就是tracker服務(wù)的地址杉辙。 ClientGlobal.init("D:/workspaces-itcast/term197/taotao-manager-web/src/main/resources/resource/client.conf");// 2、創(chuàng)建一個(gè)TrackerClient對(duì)象班缰。直接new一個(gè)贤壁。 TrackerClient trackerClient =newTrackerClient();// 3、使用TrackerClient對(duì)象創(chuàng)建連接鲁捏,獲得一個(gè)TrackerServer對(duì)象芯砸。 TrackerServer trackerServer = trackerClient.getConnection();// 4、創(chuàng)建一個(gè)StorageServer的引用给梅,值為null StorageServer storageServer =null;// 5、創(chuàng)建一個(gè)StorageClient對(duì)象双揪,需要兩個(gè)參數(shù)TrackerServer對(duì)象动羽、StorageServer的引用 StorageClient storageClient =newStorageClient(trackerServer, storageServer);// 6、使用StorageClient對(duì)象上傳圖片渔期。 //擴(kuò)展名不帶“.” String[] strings = storageClient.upload_file("D:/Documents/Pictures/images/200811281555127886.jpg","jpg",null);// 7运吓、返回?cái)?shù)組。包含組名和圖片的路徑疯趟。 for(Stringstring : strings) { System.out.println(string); } } } # ![image](http://upload-images.jianshu.io/upload_images/2509688-45370c9d24b87e31?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
5.獲取異常的堆棧信息
packagecom.taotao.utils;importjava.io.PrintWriter;importjava.io.StringWriter;publicclassExceptionUtil{/** * 獲取異常的堆棧信息 * *@paramt *@return*/publicstaticStringgetStackTrace(Throwable t){? StringWriter sw =newStringWriter();? PrintWriter pw =newPrintWriter(sw);try{ t.printStackTrace(pw);returnsw.toString(); }finally{ pw.close(); } } }
#6.easyUIDataGrid對(duì)象返回值
packagecom.taotao.result;importjava.util.List;/** * easyUIDataGrid對(duì)象返回值? *
Title: EasyUIResult
*Description:
*Company: www.itcast.com
*@author入云龍 *@date2019年7月21日下午4:12:52? *@version1.0 */publicclassEasyUIResult{privateInteger total;privateList rows;publicEasyUIResult(Integer total, List<?> rows){this.total = total;this.rows = rows; }publicEasyUIResult(longtotal, List rows){this.total = (int) total;this.rows = rows; }publicIntegergetTotal(){returntotal; }publicvoidsetTotal(Integer total){this.total = total; }publicList getRows() {returnrows; }publicvoidsetRows(List<?> rows){this.rows = rows; } }
7.ftp上傳下載工具類
package com.taotao.utils;importjava.io.File;importjava.io.FileInputStream;importjava.io.FileNotFoundException;importjava.io.FileOutputStream;importjava.io.IOException;importjava.io.InputStream;importjava.io.OutputStream;importorg.apache.commons.net.ftp.FTP;importorg.apache.commons.net.ftp.FTPClient;importorg.apache.commons.net.ftp.FTPFile;importorg.apache.commons.net.ftp.FTPReply;/** *ftp上傳下載工具類 *
Title: FtpUtil
* <p>Description: </p> *Company: www.itcast.com
* @author 入云龍* @date 2015年7月29日下午8:11:51 *@version 1.0 */publicclassFtpUtil{/** *Description: 向FTP服務(wù)器上傳文件* @param host FTP服務(wù)器hostname *@param port FTP服務(wù)器端口 * @param username FTP登錄賬號(hào)* @param password FTP登錄密碼 *@param basePath FTP服務(wù)器基礎(chǔ)目錄? * @param filePath FTP服務(wù)器文件存放路徑拘哨。例如分日期存放:/2015/01/01。文件的路徑為basePath+filePath* @param filename 上傳到FTP服務(wù)器上的文件名 * @param input 輸入流* @return 成功返回true信峻,否則返回false */publicstaticboolean uploadFile(Stringhost,intport,Stringusername,Stringpassword,StringbasePath,StringfilePath,Stringfilename, InputStream input) { boolean result =false;? FTPClient ftp =newFTPClient();try{intreply;? ftp.connect(host, port);// 連接FTP服務(wù)器 // 如果采用默認(rèn)端口倦青,可以使用ftp.connect(host)的方式直接連接FTP服務(wù)器 ftp.login(username, password);// 登錄 reply = ftp.getReplyCode(); if(!FTPReply.isPositiveCompletion(reply)) { ftp.disconnect();returnresult; }//切換到上傳目錄 if (!ftp.changeWorkingDirectory(basePath+filePath)) { //如果目錄不存在創(chuàng)建目錄 String[] dirs = filePath.split("/"); StringtempPath = basePath;for(Stringdir : dirs) {if(null== dir ||"".equals(dir))continue;? tempPath +="/"+ dir;if(!ftp.changeWorkingDirectory(tempPath)) {if(!ftp.makeDirectory(tempPath)) {returnresult; }else{? ftp.changeWorkingDirectory(tempPath); } } } }//設(shè)置上傳文件的類型為二進(jìn)制類型 ftp.setFileType(FTP.BINARY_FILE_TYPE);//上傳文件 if(!ftp.storeFile(filename, input)) {returnresult; . } input.close(); ftp.logout();? result =true; }catch(IOException e) { e.printStackTrace(); }finally{if(ftp.isConnected()) {try{ ftp.disconnect(); }catch(IOException ioe) { } } }returnresult; }/** *Description: 從FTP服務(wù)器下載文件 * @param host FTP服務(wù)器hostname* @param port FTP服務(wù)器端口 *@param username FTP登錄賬號(hào)* @param password FTP登錄密碼 *@param remotePath FTP服務(wù)器上的相對(duì)路徑* @param fileName 要下載的文件名 . *@param localPath 下載后保存到本地的路徑* @return */publicstaticboolean downloadFile(Stringhost,intport,Stringusername,Stringpassword,StringremotePath,StringfileName,StringlocalPath) { boolean result =false;? FTPClient ftp =newFTPClient();try{intreply; ftp.connect(host, port);// 如果采用默認(rèn)端口,可以使用ftp.connect(host)的方式直接連接FTP服務(wù)器 ftp.login(username, password);// 登錄 reply = ftp.getReplyCode(); if(!FTPReply.isPositiveCompletion(reply)) { ftp.disconnect();returnresult; } ftp.changeWorkingDirectory(remotePath);// 轉(zhuǎn)移到FTP服務(wù)器目錄 FTPFile[] fs = ftp.listFiles();for(FTPFile ff : fs) {if(ff.getName().equals(fileName)) {? File localFile =newFile(localPath +"/"+ ff.getName());? OutputStreamis=newFileOutputStream(localFile);? ftp.retrieveFile(ff.getName(),is);is.close(); } } ftp.logout(); result =true; }catch(IOException e) { e.printStackTrace(); }finally{if(ftp.isConnected()) {try{ ftp.disconnect(); }catch(IOException ioe) { } } }returnresult; }? publicstaticvoidmain(String[] args) {try{? FileInputStreamin=newFileInputStream(newFile("D:\\temp\\image\\gaigeming.jpg"));147.boolean flag = uploadFile("192.168.25.133",21,"ftpuser","ftpuser","/home/ftpuser/www/images","/2015/01/21","gaigeming.jpg",in); System.out.println(flag); }catch(FileNotFoundException e) {? e.printStackTrace(); } } }
8.各種id生成策略
packagecom.taotao.utils;importjava.util.Random;/** * 各種id生成策略 * <p>Title: IDUtils</p> * <p>Description: </p>
* @date 2015年7月22日下午2:32:10 * @version 1.0 */publicclass IDUtils {/** * 圖片名生成 */publicstaticStringgenImageName() {//取當(dāng)前時(shí)間的長(zhǎng)整形值包含毫秒 longmillis= System.currentTimeMillis();//long millis = System.nanoTime(); //加上三位隨機(jī)數(shù) Randomrandom=newRandom();intend3 =random.nextInt(999);//如果不足三位前面補(bǔ)0 Stringstr=millis+String.format("%03d", end3);returnstr; }/** * 商品id生成 */publicstaticlonggenItemId() {//取當(dāng)前時(shí)間的長(zhǎng)整形值包含毫秒 long millis = System.currentTimeMillis(); //long millis = System.nanoTime(); //加上兩位隨機(jī)數(shù) Randomrandom=newRandom();intend2 =random.nextInt(99);//如果不足兩位前面補(bǔ)0 Stringstr=millis+String.format("%02d", end2);longid =newLong(str);returnid; }publicstaticvoidmain(String[] args) {for(inti=0;i<100;i++) System.out.println(genItemId()); } }
##9.上傳圖片返回值
packagecom.result;/** * 上傳圖片返回值 *
Title: PictureResult
*Description:
*Company: www.itcast.com
*@author入云龍 *@date2015年7月22日下午2:09:02 *@version1.0 */publicclassPictureResult{/** * 上傳圖片返回值盹舞,成功:0 失敳洹:1 */privateIntegererror;/** * 回顯圖片使用的url */privateString url;/** * 錯(cuò)誤時(shí)的錯(cuò)誤消息 */privateString message;publicPictureResult(Integer state, String url){this.url = url;this.error= state; }publicPictureResult(Integer state, String url, String errorMessage){this.url = url;this.error= state;this.message = errorMessage; }publicIntegergetError(){returnerror; }publicvoidsetError(Integererror){this.error=error; }publicStringgetUrl(){returnurl; }publicvoidsetUrl(String url){this.url = url; }publicStringgetMessage(){returnmessage; }publicvoidsetMessage(String message){this.message = message; } }
10.自定義響應(yīng)結(jié)構(gòu)
packagecom.result;importjava.util.List;importcom.fasterxml.jackson.databind.JsonNode;importcom.fasterxml.jackson.databind.ObjectMapper;/** * 自定義響應(yīng)結(jié)構(gòu) */publicclassTaotaoResult{// 定義jackson對(duì)象 privatestaticfinalObjectMapper MAPPER = new ObjectMapper();// 響應(yīng)業(yè)務(wù)狀態(tài) private Integer status; // 響應(yīng)消息 private String msg; // 響應(yīng)中的數(shù)據(jù) private Object data; publicstatic TaotaoResult build(Integer status, String msg, Objectdata) {returnnew TaotaoResult(status, msg,data); }publicstatic TaotaoResult ok(Objectdata) {returnnew TaotaoResult(data); }publicstatic TaotaoResult ok() {returnnew TaotaoResult(null); }publicTaotaoResult() { }publicstatic TaotaoResult build(Integer status, String msg) {returnnew TaotaoResult(status, msg,null); }publicTaotaoResult(Integer status, String msg, Objectdata) {this.status = status;this.msg = msg;this.data=data; }publicTaotaoResult(Objectdata) {this.status =200;this.msg ="OK";this.data=data; }// public Boolean isOK() { . // return this.status == 200; // } publicInteger getStatus() {returnstatus; }publicvoid setStatus(Integer status) {this.status = status; }publicString getMsg() {returnmsg; }publicvoid setMsg(String msg) {this.msg = msg; }publicObject getData() {returndata; }publicvoid setData(Objectdata) {this.data=data; }/** * 將json結(jié)果集轉(zhuǎn)化為TaotaoResult對(duì)象 * *@paramjsonData json數(shù)據(jù)? *@paramclazz TaotaoResult中的object類型 *@return*/publicstatic TaotaoResult formatToPojo(String jsonData, Class clazz) {try{if(clazz ==null) {returnMAPPER.readValue(jsonData, TaotaoResult.class); } JsonNode jsonNode = MAPPER.readTree(jsonData);? JsonNodedata= jsonNode.get("data"); Object obj =null;if(clazz !=null) {if(data.isObject()) {? obj = MAPPER.readValue(data.traverse(), clazz); }elseif(data.isTextual()) {? obj = MAPPER.readValue(data.asText(), clazz); } }returnbuild(jsonNode.get("status").intValue(), jsonNode.get("msg").asText(), obj);? }catch(Exception e) {returnnull; } }/** * 沒(méi)有object對(duì)象的轉(zhuǎn)化 * *@paramjson *@return*/publicstatic TaotaoResult format(String json) {try{returnMAPPER.readValue(json, TaotaoResult.class); }catch(Exception e) {? e.printStackTrace(); }returnnull; }/** * Object是集合轉(zhuǎn)化 * *@paramjsonData json數(shù)據(jù)? *@paramclazz 集合中的類型 *@return*/publicstatic TaotaoResult formatToList(String jsonData, Class clazz) {try{ JsonNode jsonNode = MAPPER.readTree(jsonData);? JsonNodedata= jsonNode.get("data");? Object obj =null;if(data.isArray() &&data.size() >0) {? obj = MAPPER.readValue(data.traverse(),? MAPPER.getTypeFactory().constructCollectionType(List.class, clazz)); }returnbuild(jsonNode.get("status").intValue(), jsonNode.get("msg").asText(), obj);? }catch(Exception e) {returnnull; } } }
##11.jedis操作
packagecom.taotao.jedis;publicinterface JedisClient {Stringset(Stringkey,Stringvalue);Stringget(Stringkey);? Boolean exists(Stringkey); Long expire(Stringkey,intseconds);? Long ttl(Stringkey); Long incr(Stringkey);? Long hset(Stringkey,Stringfield,Stringvalue);Stringhget(Stringkey,Stringfield); Long hdel(Stringkey,String... field); }packagecom.taotao.jedis;importorg.springframework.beans.factory.annotation.Autowired;importredis.clients.jedis.JedisCluster;publicclass JedisClientCluster implements JedisClient { @AutowiredprivateJedisCluster jedisCluster; @OverridepublicStringset(Stringkey,Stringvalue) {returnjedisCluster.set(key, value); } @OverridepublicStringget(Stringkey) {returnjedisCluster.get(key); } @OverridepublicBoolean exists(Stringkey) {returnjedisCluster.exists(key); } @OverridepublicLong expire(Stringkey,intseconds) {returnjedisCluster.expire(key, seconds); } @OverridepublicLong ttl(Stringkey) {returnjedisCluster.ttl(key); } @OverridepublicLong incr(Stringkey) {returnjedisCluster.incr(key); } @OverridepublicLong hset(Stringkey,Stringfield,Stringvalue) {returnjedisCluster.hset(key, field, value); } @OverridepublicStringhget(Stringkey,Stringfield) {returnjedisCluster.hget(key, field); }? @OverridepublicLong hdel(Stringkey,String... field) {returnjedisCluster.hdel(key, field); } }packagecom.taotao.jedis;importorg.springframework.beans.factory.annotation.Autowired;importredis.clients.jedis.Jedis;importredis.clients.jedis.JedisPool;publicclass JedisClientPool implements JedisClient { @AutowiredprivateJedisPool jedisPool; @OverridepublicStringset(Stringkey,Stringvalue) {? Jedis jedis = jedisPool.getResource();Stringresult = jedis.set(key, value);? jedis.close();returnresult; } @OverridepublicStringget(Stringkey) { Jedis jedis = jedisPool.getResource();Stringresult = jedis.get(key); jedis.close();returnresult; }? @OverridepublicBoolean exists(Stringkey) { Jedis jedis = jedisPool.getResource();? Boolean result = jedis.exists(key); jedis.close();returnresult; }? @OverridepublicLong expire(Stringkey,intseconds) {? Jedis jedis = jedisPool.getResource(); Long result = jedis.expire(key, seconds);? jedis.close();returnresult; }? @OverridepublicLong ttl(Stringkey) { Jedis jedis = jedisPool.getResource();? Long result = jedis.ttl(key); jedis.close();returnresult; }? @OverridepublicLong incr(Stringkey) { Jedis jedis = jedisPool.getResource();? Long result = jedis.incr(key); jedis.close();returnresult; } @OverridepublicLong hset(Stringkey,Stringfield,Stringvalue) {? Jedis jedis = jedisPool.getResource(); Long result = jedis.hset(key, field, value);? jedis.close();returnresult; }? @OverridepublicStringhget(Stringkey,Stringfield) {? Jedis jedis = jedisPool.getResource();Stringresult = jedis.hget(key, field);? jedis.close();returnresult; }? @OverridepublicLong hdel(Stringkey,String... field) {? Jedis jedis = jedisPool.getResource(); Long result = jedis.hdel(key, field);? jedis.close();returnresult; } }