1.json转换工具
1. package com.taotao.utils; 3. import java.util.List; 5. import com.fasterxml.jackson.core.JsonProcessingException; 6. import com.fasterxml.jackson.databind.JavaType; 7. import com.fasterxml.jackson.databind.JsonNode; 8. import com.fasterxml.jackson.databind.ObjectMapper; 10. /** 11. * json转换工具类 12. */ 13. public class JsonUtils { 15. // 定义jackson对象 16. private static final ObjectMapper MAPPER = new ObjectMapper(); 18. /** 19. * 将对象转换成json字符串。 20. *
Title: pojoToJson
21. *Description:
22. * @param data 23. * @return 24. */ 25. public static String objectToJson(Object data) { 26. try { 27. String string = MAPPER.writeValueAsString(data); 28. return string; 29. } catch (JsonProcessingException e) { 30. e.printStackTrace(); 31. } 32. return null; 33. } 35. /** 36. * 将json结果集转化为对象 37. * 38. * @param jsonData json数据 39. * @param clazz 对象中的object类型 40. * @return 41. */ 42. public staticTitle: jsonToList
55. *Description:
56. * @param jsonData 57. * @param beanType 58. * @return 59. */ 60. public static2.cookie的读写
1. package com.taotao.common.utils; 3. import java.io.UnsupportedEncodingException; 4. import java.net.URLDecoder; 5. import java.net.URLEncoder; 7. import javax.servlet.http.Cookie; 8. import javax.servlet.http.HttpServletRequest; 9. import javax.servlet.http.HttpServletResponse; 12. /** 13. * 14. * Cookie 工具类 15. * 16. */ 17. public final class CookieUtils { 19. /** 20. * 得到Cookie的值, 不编码 21. * 22. * @param request 23. * @param cookieName 24. * @return 25. */ 26. public static String getCookieValue(HttpServletRequest request, String cookieName) { 27. return getCookieValue(request, cookieName, false); 28. } 30. /** 31. * 得到Cookie的值, 32. * 33. * @param request 34. * @param cookieName 35. * @return 36. */ 37. public static String getCookieValue(HttpServletRequest request, String cookieName, boolean isDecoder) { 38. Cookie[] cookieList = request.getCookies(); 39. if (cookieList == null || cookieName == null) { 40. return null; 41. } 42. String retValue = null; 43. try { 44. for (int i = 0; i < cookieList.length; i++) { 45. if (cookieList[i].getName().equals(cookieName)) { 46. if (isDecoder) { 47. retValue = URLDecoder.decode(cookieList[i].getValue(), "UTF-8"); 48. } else { 49. retValue = cookieList[i].getValue(); 50. } 51. break; 52. } 53. } 54. } catch (UnsupportedEncodingException e) { 55. e.printStackTrace(); 56. } 57. return retValue; 58. } 60. /** 61. * 得到Cookie的值, 62. * 63. * @param request 64. * @param cookieName 65. * @return 66. */ 67. public static String getCookieValue(HttpServletRequest request, String cookieName, String encodeString) { 68. Cookie[] cookieList = request.getCookies(); 69. if (cookieList == null || cookieName == null) { 70. return null; 71. } 72. String retValue = null; 73. try { 74. for (int i = 0; i < cookieList.length; i++) { 75. if (cookieList[i].getName().equals(cookieName)) { 76. retValue = URLDecoder.decode(cookieList[i].getValue(), encodeString); 77. break; 78. } 79. } 80. } catch (UnsupportedEncodingException e) { 81. e.printStackTrace(); 82. } 83. return retValue; 84. } 86. /** 87. * 设置Cookie的值 不设置生效时间默认浏览器关闭即失效,也不编码 88. */ 89. public static void setCookie(HttpServletRequest request, HttpServletResponse response, String cookieName, 90. String cookieValue) { 91. setCookie(request, response, cookieName, cookieValue, -1); 92. } 94. /** 95. * 设置Cookie的值 在指定时间内生效,但不编码 96. */ 97. public static void setCookie(HttpServletRequest request, HttpServletResponse response, String cookieName, 98. String cookieValue, int cookieMaxage) { 99. setCookie(request, response, cookieName, cookieValue, cookieMaxage, false); 100. } 102. /** 103. * 设置Cookie的值 不设置生效时间,但编码 104. */ 105. public static void setCookie(HttpServletRequest request, HttpServletResponse response, String cookieName, 106. String cookieValue, boolean isEncode) { 107. setCookie(request, response, cookieName, cookieValue, -1, isEncode); 108. } 110. /** 111. * 设置Cookie的值 在指定时间内生效, 编码参数 112. */ 113. public static void setCookie(HttpServletRequest request, HttpServletResponse response, String cookieName, 114. String cookieValue, int cookieMaxage, boolean isEncode) { 115. doSetCookie(request, response, cookieName, cookieValue, cookieMaxage, isEncode); 116. } 118. /** 119. * 设置Cookie的值 在指定时间内生效, 编码参数(指定编码) 120. */ 121. public static void setCookie(HttpServletRequest request, HttpServletResponse response, String cookieName, 122. String cookieValue, int cookieMaxage, String encodeString) { 123. doSetCookie(request, response, cookieName, cookieValue, cookieMaxage, encodeString); 124. } 126. /** 127. * 删除Cookie带cookie域名 128. */ 129. public static void deleteCookie(HttpServletRequest request, HttpServletResponse response, 130. String cookieName) { 131. doSetCookie(request, response, cookieName, "", -1, false); 132. } 134. /** 135. * 设置Cookie的值,并使其在指定时间内生效 136. * 137. * @param cookieMaxage cookie生效的最大秒数 138. */ 139. private static final void doSetCookie(HttpServletRequest request, HttpServletResponse response, 140. String cookieName, String cookieValue, int cookieMaxage, boolean isEncode) { 141. try { 142. if (cookieValue == null) { 143. cookieValue = ""; 144. } else if (isEncode) { 145. cookieValue = URLEncoder.encode(cookieValue, "utf-8"); 146. } 147. Cookie cookie = new Cookie(cookieName, cookieValue); 148. if (cookieMaxage > 0) 149. cookie.setMaxAge(cookieMaxage); 150. if (null != request) {// 设置域名的cookie 151. String domainName = getDomainName(request); 152. System.out.println(domainName); 153. if (!"localhost".equals(domainName)) { 154. cookie.setDomain(domainName); 155. } 156. } 157. cookie.setPath("/"); 158. response.addCookie(cookie); 159. } catch (Exception e) { 160. e.printStackTrace(); 161. } 162. } 164. /** 165. * 设置Cookie的值,并使其在指定时间内生效 166. * 167. * @param cookieMaxage cookie生效的最大秒数 168. */ 169. private static final void doSetCookie(HttpServletRequest request, HttpServletResponse response, 170. String cookieName, String cookieValue, int cookieMaxage, String encodeString) { 171. try { 172. if (cookieValue == null) { 173. cookieValue = ""; 174. } else { 175. cookieValue = URLEncoder.encode(cookieValue, encodeString); 176. } 177. Cookie cookie = new Cookie(cookieName, cookieValue); 178. if (cookieMaxage > 0) 179. cookie.setMaxAge(cookieMaxage); 180. if (null != request) {// 设置域名的cookie 181. String domainName = getDomainName(request); 182. System.out.println(domainName); 183. if (!"localhost".equals(domainName)) { 184. cookie.setDomain(domainName); 185. } 186. } 187. cookie.setPath("/"); 188. response.addCookie(cookie); 189. } catch (Exception e) { 190. e.printStackTrace(); 191. } 192. } 194. /** 195. * 得到cookie的域名 196. */ 197. private static final String getDomainName(HttpServletRequest request) { 198. String domainName = null; 200. String serverName = request.getRequestURL().toString(); 201. if (serverName == null || serverName.equals("")) { 202. domainName = ""; 203. } else { 204. serverName = serverName.toLowerCase(); 205. serverName = serverName.substring(7); 206. final int end = serverName.indexOf("/"); 207. serverName = serverName.substring(0, end); 208. final String[] domains = serverName.split("\\."); 209. int len = domains.length; 210. if (len > 3) { 211. // www.xxx.com.cn 212. domainName = "." + domains[len - 3] + "." + domains[len - 2] + "." + domains[len - 1]; 213. } else if (len <= 3 && len > 1) { 214. // xxx.com or xxx.cn 215. domainName = "." + domains[len - 2] + "." + domains[len - 1]; 216. } else { 217. domainName = serverName; 218. } 219. } 221. if (domainName != null && domainName.indexOf(":") > 0) { 222. String[] ary = domainName.split("\\:"); 223. domainName = ary[0]; 224. } 225. return domainName; 226. } 228. }
3.HttpClientUtil
1. package com.taotao.utils; 3. import java.io.IOException; 4. import java.net.URI; 5. import java.util.ArrayList; 6. import java.util.List; 7. import java.util.Map; 9. import org.apache.http.NameValuePair; 10. import org.apache.http.client.entity.UrlEncodedFormEntity; 11. import org.apache.http.client.methods.CloseableHttpResponse; 12. import org.apache.http.client.methods.HttpGet; 13. import org.apache.http.client.methods.HttpPost; 14. import org.apache.http.client.utils.URIBuilder; 15. import org.apache.http.entity.ContentType; 16. import org.apache.http.entity.StringEntity; 17. import org.apache.http.impl.client.CloseableHttpClient; 18. import org.apache.http.impl.client.HttpClients; 19. import org.apache.http.message.BasicNameValuePair; 20. import org.apache.http.util.EntityUtils; 22. public class HttpClientUtil { 24. public static String doGet(String url, Map
4.FastDFSClient工具类
1. package cn.itcast.fastdfs.cliennt; 3. import org.csource.common.NameValuePair; 4. import org.csource.fastdfs.ClientGlobal; 5. import org.csource.fastdfs.StorageClient1; 6. import org.csource.fastdfs.StorageServer; 7. import org.csource.fastdfs.TrackerClient; 8. import org.csource.fastdfs.TrackerServer; 10. public class FastDFSClient { 12. private TrackerClient trackerClient = null; 13. private TrackerServer trackerServer = null; 14. private StorageServer storageServer = null; 15. private StorageClient1 storageClient = null; 17. public FastDFSClient(String conf) throws Exception { 18. if (conf.contains("classpath:")) { 19. conf = conf.replace("classpath:", this.getClass().getResource("/").getPath()); 20. } 21. ClientGlobal.init(conf); 22. trackerClient = new TrackerClient(); 23. trackerServer = trackerClient.getConnection(); 24. storageServer = null; 25. storageClient = new StorageClient1(trackerServer, storageServer); 26. } 28. /** 29. * 上传文件方法 30. *
Title: uploadFile
31. *Description:
32. * @param fileName 文件全路径 33. * @param extName 文件扩展名,不包含(.) 34. * @param metas 文件扩展信息 35. * @return 36. * @throws Exception 37. */ 38. public String uploadFile(String fileName, String extName, NameValuePair[] metas) throws Exception { 39. String result = storageClient.upload_file1(fileName, extName, metas); 40. return result; 41. } 43. public String uploadFile(String fileName) throws Exception { 44. return uploadFile(fileName, null, null); 45. } 47. public String uploadFile(String fileName, String extName) throws Exception { 48. return uploadFile(fileName, extName, null); 49. } 51. /** 52. * 上传文件方法 53. *Title: uploadFile
54. *Description:
55. * @param fileContent 文件的内容,字节数组 56. * @param extName 文件扩展名 57. * @param metas 文件扩展信息 58. * @return 59. * @throws Exception 60. */ 61. public String uploadFile(byte[] fileContent, String extName, NameValuePair[] metas) throws Exception { 63. String result = storageClient.upload_file1(fileContent, extName, metas); 64. return result; 65. } 67. public String uploadFile(byte[] fileContent) throws Exception { 68. return uploadFile(fileContent, null, null); 69. } 71. public String uploadFile(byte[] fileContent, String extName) throws Exception { 72. return uploadFile(fileContent, extName, null); 73. } 74. }1. public class FastDFSTest { 3. @Test 4. public void testFileUpload() throws Exception { 5. // 1、加载配置文件,配置文件中的内容就是tracker服务的地址。 6. ClientGlobal.init("D:/workspaces-itcast/term197/taotao-manager-web/src/main/resources/resource/client.conf"); 7. // 2、创建一个TrackerClient对象。直接new一个。 8. TrackerClient trackerClient = new TrackerClient(); 9. // 3、使用TrackerClient对象创建连接,获得一个TrackerServer对象。 10. TrackerServer trackerServer = trackerClient.getConnection(); 11. // 4、创建一个StorageServer的引用,值为null 12. StorageServer storageServer = null; 13. // 5、创建一个StorageClient对象,需要两个参数TrackerServer对象、StorageServer的引用 14. StorageClient storageClient = new StorageClient(trackerServer, storageServer); 15. // 6、使用StorageClient对象上传图片。 16. //扩展名不带“.” 17. String[] strings = storageClient.upload_file("D:/Documents/Pictures/images/200811281555127886.jpg", "jpg", null); 18. // 7、返回数组。包含组名和图片的路径。 19. for (String string : strings) { 20. System.out.println(string); 21. } 22. } 23. } # ![image](http://upload-images.jianshu.io/upload_images/2509688-45370c9d24b87e31?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
5.获取异常的堆栈信息
1. package com.taotao.utils; 3. import java.io.PrintWriter; 4. import java.io.StringWriter; 6. public class ExceptionUtil { 8. /** 9. * 获取异常的堆栈信息 10. * 11. * @param t 12. * @return 13. */ 14. public static String getStackTrace(Throwable t) { 15. StringWriter sw = new StringWriter(); 16. PrintWriter pw = new PrintWriter(sw); 18. try { 19. t.printStackTrace(pw); 20. return sw.toString(); 21. } finally { 22. pw.close(); 23. } 24. } 25. }
#6.easyUIDataGrid对象返回值
1. package com.taotao.result; 3. import java.util.List; 5. /** 6. * easyUIDataGrid对象返回值 7. *
Title: EasyUIResult
8. *Description:
9. *Company: www.itcast.com
10. * @author 入云龙 11. * @date 2015年7月21日下午4:12:52 12. * @version 1.0 13. */ 14. public class EasyUIResult { 16. private Integer total; 18. private List> rows; 20. public EasyUIResult(Integer total, List> rows) { 21. this.total = total; 22. this.rows = rows; 23. } 25. public EasyUIResult(long total, List> rows) { 26. this.total = (int) total; 27. this.rows = rows; 28. } 30. public Integer getTotal() { 31. return total; 32. } 33. public void setTotal(Integer total) { 34. this.total = total; 35. } 36. public List> getRows() { 37. return rows; 38. } 39. public void setRows(List> rows) { 40. this.rows = rows; 41. } 44. }7.ftp上传下载工具类
1. package com.taotao.utils; 3. import java.io.File; 4. import java.io.FileInputStream; 5. import java.io.FileNotFoundException; 6. import java.io.FileOutputStream; 7. import java.io.IOException; 8. import java.io.InputStream; 9. import java.io.OutputStream; 11. import org.apache.commons.net.ftp.FTP; 12. import org.apache.commons.net.ftp.FTPClient; 13. import org.apache.commons.net.ftp.FTPFile; 14. import org.apache.commons.net.ftp.FTPReply; 16. /** 17. * ftp上传下载工具类 18. *
Title: FtpUtil
19. *Description:
20. *Company: www.itcast.com
21. * @author 入云龙 22. * @date 2015年7月29日下午8:11:51 23. * @version 1.0 24. */ 25. public class FtpUtil { 27. /** 28. * Description: 向FTP服务器上传文件 29. * @param host FTP服务器hostname 30. * @param port FTP服务器端口 31. * @param username FTP登录账号 32. * @param password FTP登录密码 33. * @param basePath FTP服务器基础目录 34. * @param filePath FTP服务器文件存放路径。例如分日期存放:/2015/01/01。文件的路径为basePath+filePath 35. * @param filename 上传到FTP服务器上的文件名 36. * @param input 输入流 37. * @return 成功返回true,否则返回false 38. */ 39. public static boolean uploadFile(String host, int port, String username, String password, String basePath, 40. String filePath, String filename, InputStream input) { 41. boolean result = false; 42. FTPClient ftp = new FTPClient(); 43. try { 44. int reply; 45. ftp.connect(host, port);// 连接FTP服务器 46. // 如果采用默认端口,可以使用ftp.connect(host)的方式直接连接FTP服务器 47. ftp.login(username, password);// 登录 48. reply = ftp.getReplyCode(); 49. if (!FTPReply.isPositiveCompletion(reply)) { 50. ftp.disconnect(); 51. return result; 52. } 53. //切换到上传目录 54. if (!ftp.changeWorkingDirectory(basePath+filePath)) { 55. //如果目录不存在创建目录 56. String[] dirs = filePath.split("/"); 57. String tempPath = basePath; 58. for (String dir : dirs) { 59. if (null == dir || "".equals(dir)) continue; 60. tempPath += "/" + dir; 61. if (!ftp.changeWorkingDirectory(tempPath)) { 62. if (!ftp.makeDirectory(tempPath)) { 63. return result; 64. } else { 65. ftp.changeWorkingDirectory(tempPath); 66. } 67. } 68. } 69. } 70. //设置上传文件的类型为二进制类型 71. ftp.setFileType(FTP.BINARY_FILE_TYPE); 72. //上传文件 73. if (!ftp.storeFile(filename, input)) { 74. return result; 75. } 76. input.close(); 77. ftp.logout(); 78. result = true; 79. } catch (IOException e) { 80. e.printStackTrace(); 81. } finally { 82. if (ftp.isConnected()) { 83. try { 84. ftp.disconnect(); 85. } catch (IOException ioe) { 86. } 87. } 88. } 89. return result; 90. } 92. /** 93. * Description: 从FTP服务器下载文件 94. * @param host FTP服务器hostname 95. * @param port FTP服务器端口 96. * @param username FTP登录账号 97. * @param password FTP登录密码 98. * @param remotePath FTP服务器上的相对路径 99. * @param fileName 要下载的文件名 100. * @param localPath 下载后保存到本地的路径 101. * @return 102. */ 103. public static boolean downloadFile(String host, int port, String username, String password, String remotePath, 104. String fileName, String localPath) { 105. boolean result = false; 106. FTPClient ftp = new FTPClient(); 107. try { 108. int reply; 109. ftp.connect(host, port); 110. // 如果采用默认端口,可以使用ftp.connect(host)的方式直接连接FTP服务器 111. ftp.login(username, password);// 登录 112. reply = ftp.getReplyCode(); 113. if (!FTPReply.isPositiveCompletion(reply)) { 114. ftp.disconnect(); 115. return result; 116. } 117. ftp.changeWorkingDirectory(remotePath);// 转移到FTP服务器目录 118. FTPFile[] fs = ftp.listFiles(); 119. for (FTPFile ff : fs) { 120. if (ff.getName().equals(fileName)) { 121. File localFile = new File(localPath + "/" + ff.getName()); 123. OutputStream is = new FileOutputStream(localFile); 124. ftp.retrieveFile(ff.getName(), is); 125. is.close(); 126. } 127. } 129. ftp.logout(); 130. result = true; 131. } catch (IOException e) { 132. e.printStackTrace(); 133. } finally { 134. if (ftp.isConnected()) { 135. try { 136. ftp.disconnect(); 137. } catch (IOException ioe) { 138. } 139. } 140. } 141. return result; 142. } 144. public static void main(String[] args) { 145. try { 146. FileInputStream in=new FileInputStream(new File("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); 148. System.out.println(flag); 149. } catch (FileNotFoundException e) { 150. e.printStackTrace(); 151. } 152. } 153. }8.各种id生成策略
1. package com.taotao.utils; 3. import java.util.Random; 5. /** 6. * 各种id生成策略 7. *
Title: IDUtils
8. *Description:
9. * @date 2015年7月22日下午2:32:10 10. * @version 1.0 11. */ 12. public class IDUtils { 14. /** 15. * 图片名生成 16. */ 17. public static String genImageName() { 18. //取当前时间的长整形值包含毫秒 19. long millis = System.currentTimeMillis(); 20. //long millis = System.nanoTime(); 21. //加上三位随机数 22. Random random = new Random(); 23. int end3 = random.nextInt(999); 24. //如果不足三位前面补0 25. String str = millis + String.format("%03d", end3); 27. return str; 28. } 30. /** 31. * 商品id生成 32. */ 33. public static long genItemId() { 34. //取当前时间的长整形值包含毫秒 35. long millis = System.currentTimeMillis(); 36. //long millis = System.nanoTime(); 37. //加上两位随机数 38. Random random = new Random(); 39. int end2 = random.nextInt(99); 40. //如果不足两位前面补0 41. String str = millis + String.format("%02d", end2); 42. long id = new Long(str); 43. return id; 44. } 46. public static void main(String[] args) { 47. for(int i=0;i< 100;i++) 48. System.out.println(genItemId()); 49. } 50. }##9.上传图片返回值
1. package com.result; 2. /** 3. * 上传图片返回值 4. *
Title: PictureResult
5. *Description:
6. *Company: www.itcast.com
7. * @author 入云龙 8. * @date 2015年7月22日下午2:09:02 9. * @version 1.0 10. */ 11. public class PictureResult { 13. /** 14. * 上传图片返回值,成功:0 失败:1 15. */ 16. private Integer error; 17. /** 18. * 回显图片使用的url 19. */ 20. private String url; 21. /** 22. * 错误时的错误消息 23. */ 24. private String message; 25. public PictureResult(Integer state, String url) { 26. this.url = url; 27. this.error = state; 28. } 29. public PictureResult(Integer state, String url, String errorMessage) { 30. this.url = url; 31. this.error = state; 32. this.message = errorMessage; 33. } 34. public Integer getError() { 35. return error; 36. } 37. public void setError(Integer error) { 38. this.error = error; 39. } 40. public String getUrl() { 41. return url; 42. } 43. public void setUrl(String url) { 44. this.url = url; 45. } 46. public String getMessage() { 47. return message; 48. } 49. public void setMessage(String message) { 50. this.message = message; 51. } 53. }10.自定义响应结构
1. package com.result; 3. import java.util.List; 5. import com.fasterxml.jackson.databind.JsonNode; 6. import com.fasterxml.jackson.databind.ObjectMapper; 8. /** 9. * 自定义响应结构 10. */ 11. public class TaotaoResult { 13. // 定义jackson对象 14. private static final ObjectMapper MAPPER = new ObjectMapper(); 16. // 响应业务状态 17. private Integer status; 19. // 响应消息 20. private String msg; 22. // 响应中的数据 23. private Object data; 25. public static TaotaoResult build(Integer status, String msg, Object data) { 26. return new TaotaoResult(status, msg, data); 27. } 29. public static TaotaoResult ok(Object data) { 30. return new TaotaoResult(data); 31. } 33. public static TaotaoResult ok() { 34. return new TaotaoResult(null); 35. } 37. public TaotaoResult() { 39. } 41. public static TaotaoResult build(Integer status, String msg) { 42. return new TaotaoResult(status, msg, null); 43. } 45. public TaotaoResult(Integer status, String msg, Object data) { 46. this.status = status; 47. this.msg = msg; 48. this.data = data; 49. } 51. public TaotaoResult(Object data) { 52. this.status = 200; 53. this.msg = "OK"; 54. this.data = data; 55. } 57. // public Boolean isOK() { 58. // return this.status == 200; 59. // } 61. public Integer getStatus() { 62. return status; 63. } 65. public void setStatus(Integer status) { 66. this.status = status; 67. } 69. public String getMsg() { 70. return msg; 71. } 73. public void setMsg(String msg) { 74. this.msg = msg; 75. } 77. public Object getData() { 78. return data; 79. } 81. public void setData(Object data) { 82. this.data = data; 83. } 85. /** 86. * 将json结果集转化为TaotaoResult对象 87. * 88. * @param jsonData json数据 89. * @param clazz TaotaoResult中的object类型 90. * @return 91. */ 92. public static TaotaoResult formatToPojo(String jsonData, Class> clazz) { 93. try { 94. if (clazz == null) { 95. return MAPPER.readValue(jsonData, TaotaoResult.class); 96. } 97. JsonNode jsonNode = MAPPER.readTree(jsonData); 98. JsonNode data = jsonNode.get("data"); 99. Object obj = null; 100. if (clazz != null) { 101. if (data.isObject()) { 102. obj = MAPPER.readValue(data.traverse(), clazz); 103. } else if (data.isTextual()) { 104. obj = MAPPER.readValue(data.asText(), clazz); 105. } 106. } 107. return build(jsonNode.get("status").intValue(), jsonNode.get("msg").asText(), obj); 108. } catch (Exception e) { 109. return null; 110. } 111. } 113. /** 114. * 没有object对象的转化 115. * 116. * @param json 117. * @return 118. */ 119. public static TaotaoResult format(String json) { 120. try { 121. return MAPPER.readValue(json, TaotaoResult.class); 122. } catch (Exception e) { 123. e.printStackTrace(); 124. } 125. return null; 126. } 128. /** 129. * Object是集合转化 130. * 131. * @param jsonData json数据 132. * @param clazz 集合中的类型 133. * @return 134. */ 135. public static TaotaoResult formatToList(String jsonData, Class> clazz) { 136. try { 137. JsonNode jsonNode = MAPPER.readTree(jsonData); 138. JsonNode data = jsonNode.get("data"); 139. Object obj = null; 140. if (data.isArray() && data.size() > 0) { 141. obj = MAPPER.readValue(data.traverse(), 142. MAPPER.getTypeFactory().constructCollectionType(List.class, clazz)); 143. } 144. return build(jsonNode.get("status").intValue(), jsonNode.get("msg").asText(), obj); 145. } catch (Exception e) { 146. return null; 147. } 148. } 150. }
##11.jedis操作
1. package com.taotao.jedis; 3. public interface JedisClient { 5. String set(String key, String value); 6. String get(String key); 7. Boolean exists(String key); 8. Long expire(String key, int seconds); 9. Long ttl(String key); 10. Long incr(String key); 11. Long hset(String key, String field, String value); 12. String hget(String key, String field); 13. Long hdel(String key, String... field); 14. }
1. package com.taotao.jedis; 3. import org.springframework.beans.factory.annotation.Autowired; 5. import redis.clients.jedis.JedisCluster; 7. public class JedisClientCluster implements JedisClient { 9. @Autowired 10. private JedisCluster jedisCluster; 12. @Override 13. public String set(String key, String value) { 14. return jedisCluster.set(key, value); 15. } 17. @Override 18. public String get(String key) { 19. return jedisCluster.get(key); 20. } 22. @Override 23. public Boolean exists(String key) { 24. return jedisCluster.exists(key); 25. } 27. @Override 28. public Long expire(String key, int seconds) { 29. return jedisCluster.expire(key, seconds); 30. } 32. @Override 33. public Long ttl(String key) { 34. return jedisCluster.ttl(key); 35. } 37. @Override 38. public Long incr(String key) { 39. return jedisCluster.incr(key); 40. } 42. @Override 43. public Long hset(String key, String field, String value) { 44. return jedisCluster.hset(key, field, value); 45. } 47. @Override 48. public String hget(String key, String field) { 49. return jedisCluster.hget(key, field); 50. } 52. @Override 53. public Long hdel(String key, String... field) { 54. return jedisCluster.hdel(key, field); 55. } 57. }
1. package com.taotao.jedis; 4. import org.springframework.beans.factory.annotation.Autowired; 7. import redis.clients.jedis.Jedis; 8. import redis.clients.jedis.JedisPool; 11. public class JedisClientPool implements JedisClient { 13. @Autowired 14. private JedisPool jedisPool; 17. @Override 18. public String set(String key, String value) { 19. Jedis jedis = jedisPool.getResource(); 20. String result = jedis.set(key, value); 21. jedis.close(); 22. return result; 23. } 26. @Override 27. public String get(String key) { 28. Jedis jedis = jedisPool.getResource(); 29. String result = jedis.get(key); 30. jedis.close(); 31. return result; 32. } 35. @Override 36. public Boolean exists(String key) { 37. Jedis jedis = jedisPool.getResource(); 38. Boolean result = jedis.exists(key); 39. jedis.close(); 40. return result; 41. } 44. @Override 45. public Long expire(String key, int seconds) { 46. Jedis jedis = jedisPool.getResource(); 47. Long result = jedis.expire(key, seconds); 48. jedis.close(); 49. return result; 50. } 53. @Override 54. public Long ttl(String key) { 55. Jedis jedis = jedisPool.getResource(); 56. Long result = jedis.ttl(key); 57. jedis.close(); 58. return result; 59. } 62. @Override 63. public Long incr(String key) { 64. Jedis jedis = jedisPool.getResource(); 65. Long result = jedis.incr(key); 66. jedis.close(); 67. return result; 68. } 71. @Override 72. public Long hset(String key, String field, String value) { 73. Jedis jedis = jedisPool.getResource(); 74. Long result = jedis.hset(key, field, value); 75. jedis.close(); 76. return result; 77. } 80. @Override 81. public String hget(String key, String field) { 82. Jedis jedis = jedisPool.getResource(); 83. String result = jedis.hget(key, field); 84. jedis.close(); 85. return result; 86. } 89. @Override 90. public Long hdel(String key, String... field) { 91. Jedis jedis = jedisPool.getResource(); 92. Long result = jedis.hdel(key, field); 93. jedis.close(); 94. return result; 95. } 98. }