整理收集的一些常用java工具類
阿新 • • 發佈:2019-01-07
path pack 登錄密碼 form 字符 mapper 狀態 dos byte 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. * <p>Title: pojoToJson</p> 21. * <p>Description: </p> 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 static <T> T jsonToPojo(String jsonData, Class<T> beanType) { 43. try { 44. T t = MAPPER.readValue(jsonData, beanType); 45. return t; 46. } catch (Exception e) { 47. e.printStackTrace(); 48. } 49. return null; 50. } 52. /** 53. * 將json數據轉換成pojo對象list 54. * <p>Title: jsonToList</p> 55. * <p>Description: </p> 56. * @param jsonData 57. * @param beanType 58. * @return 59. */ 60. public static <T>List<T> jsonToList(String jsonData, Class<T> beanType) { 61. JavaType javaType = MAPPER.getTypeFactory().constructParametricType(List.class, beanType); 62. try { 63. List<T> list = MAPPER.readValue(jsonData, javaType); 64. return list; 65. } catch (Exception e) { 66. e.printStackTrace(); 67. } 69. return null; 70. } 72. }
2.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<String, String> param) { 26. // 創建Httpclient對象 27. CloseableHttpClient httpclient = HttpClients.createDefault(); 29. String resultString = ""; 30. CloseableHttpResponse response = null; 31. try { 32. // 創建uri 33. URIBuilder builder = new URIBuilder(url); 34. if (param != null) { 35. for (String key : param.keySet()) { 36. builder.addParameter(key, param.get(key)); 37. } 38. } 39. URI uri = builder.build(); 41. // 創建http GET請求 42. HttpGet httpGet = new HttpGet(uri); 44. // 執行請求 45. response = httpclient.execute(httpGet); 46. // 判斷返回狀態是否為200 47. if (response.getStatusLine().getStatusCode() == 200) { 48. resultString = EntityUtils.toString(response.getEntity(), "UTF-8"); 49. } 50. } catch (Exception e) { 51. e.printStackTrace(); 52. } finally { 53. try { 54. if (response != null) { 55. response.close(); 56. } 57. httpclient.close(); 58. } catch (IOException e) { 59. e.printStackTrace(); 60. } 61. } 62. return resultString; 63. } 65. public static String doGet(String url) { 66. return doGet(url, null); 67. } 69. public static String doPost(String url, Map<String, String> param) { 70. // 創建Httpclient對象 71. CloseableHttpClient httpClient = HttpClients.createDefault(); 72. CloseableHttpResponse response = null; 73. String resultString = ""; 74. try { 75. // 創建Http Post請求 76. HttpPost httpPost = new HttpPost(url); 77. // 創建參數列表 78. if (param != null) { 79. List<NameValuePair> paramList = new ArrayList<>(); 80. for (String key : param.keySet()) { 81. paramList.add(new BasicNameValuePair(key, param.get(key))); 82. } 83. // 模擬表單 84. UrlEncodedFormEntity entity = new UrlEncodedFormEntity(paramList); 85. httpPost.setEntity(entity); 86. } 87. // 執行http請求 88. response = httpClient.execute(httpPost); 89. resultString = EntityUtils.toString(response.getEntity(), "utf-8"); 90. } catch (Exception e) { 91. e.printStackTrace(); 92. } finally { 93. try { 94. response.close(); 95. } catch (IOException e) { 96. // TODO Auto-generated catch block 97. e.printStackTrace(); 98. } 99. } 101. return resultString; 102. } 104. public static String doPost(String url) { 105. return doPost(url, null); 106. } 108. public static String doPostJson(String url, String json) { 109. // 創建Httpclient對象 110. CloseableHttpClient httpClient = HttpClients.createDefault(); 111. CloseableHttpResponse response = null; 112. String resultString = ""; 113. try { 114. // 創建Http Post請求 115. HttpPost httpPost = new HttpPost(url); 116. // 創建請求內容 117. StringEntity entity = new StringEntity(json, ContentType.APPLICATION_JSON); 118. httpPost.setEntity(entity); 119. // 執行http請求 120. response = httpClient.execute(httpPost); 121. resultString = EntityUtils.toString(response.getEntity(), "utf-8"); 122. } catch (Exception e) { 123. e.printStackTrace(); 124. } finally { 125. try { 126. response.close(); 127. } catch (IOException e) { 128. // TODO Auto-generated catch block 129. e.printStackTrace(); 130. } 131. } 133. return resultString; 134. } 135. }
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. * <p>Title: uploadFile</p>
31. * <p>Description: </p>
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. * <p>Title: uploadFile</p>
54. * <p>Description: </p>
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. <span style="font-size:14px;font-weight:normal;">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. }</span>
# ![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. * <p>Title: EasyUIResult</p>
8. * <p>Description: </p>
9. * <p>Company: www.itcast.com</p>
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. * <p>Title: FtpUtil</p>
19. * <p>Description: </p>
20. * <p>Company: www.itcast.com</p>
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. * <p>Title: IDUtils</p>
8. * <p>Description: </p>
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. * <p>Title: PictureResult</p>
5. * <p>Description: </p>
6. * <p>Company: www.itcast.com</p>
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. }
整理收集的一些常用java工具類