美文网首页
常用的Java工具类

常用的Java工具类

作者: AlbenXie | 来源:发表于2018-10-08 00:12 被阅读26次

    1.json转换工具

    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转换工具类 
     */
    public class JsonUtils {
        // 定义jackson对象  
        private static final ObjectMapper MAPPER = new ObjectMapper();
        /** 
         * 将对象转换成json字符串。 
         * <p>Title: pojoToJson</p> 
         * <p>Description: </p> 
         * @param data 
         * @return 
         */
        public static String objectToJson(Object data) {
            try {
                String string = MAPPER.writeValueAsString(data);
                return string;
            }
            catch (JsonProcessingException e) {
                e.printStackTrace();
            }
            return null;
        }
        /** 
         * 将json结果集转化为对象 
         *  
         * @param jsonData json数据 
         * @param clazz 对象中的object类型 
         * @return 
         */
        public static <T> T jsonToPojo(String jsonData, Class<T> beanType) {
            try {
                T t = MAPPER.readValue(jsonData, beanType);
                return t;
            }
            catch (Exception e) {
                e.printStackTrace();
            }
            return null;
        }
        /** 
         * 将json数据转换成pojo对象list 
         * <p>Title: jsonToList</p> 
         * <p>Description: </p> 
         * @param jsonData 
         * @param beanType 
         * @return 
         */
        public static <T>List<T> jsonToList(String jsonData, Class<T> beanType) {
            JavaType javaType = MAPPER.getTypeFactory().constructParametricType(List.class, beanType);
            try {
                List<T> list = MAPPER.readValue(jsonData, javaType);
                return list;
            }
            catch (Exception e) {
                e.printStackTrace();
            }
            return null;
        }
    }
    

    2.cookie的读写

    package com.taotao.common.utils;
    import java.io.UnsupportedEncodingException;
    import java.net.URLDecoder;
    import java.net.URLEncoder;
    import javax.servlet.http.Cookie;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    /** 
     *  
     * Cookie 工具类 
     * 
     */
    public final class CookieUtils {
        /** 
         * 得到Cookie的值, 不编码 
         *  
         * @param request 
         * @param cookieName 
         * @return 
         */
        public static String getCookieValue(HttpServletRequest request, String cookieName) {
            return getCookieValue(request, cookieName, false);
        }
        /** 
         * 得到Cookie的值, 
         *  
         * @param request 
         * @param cookieName 
         * @return 
         */
        public static String getCookieValue(HttpServletRequest request, String cookieName, Boolean isDecoder) {
            Cookie[] cookieList = request.getCookies();
            if (cookieList == null || cookieName == null) {
                return null;
            }
            String retValue = null;
            try {
                for (int i = 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();
            }
            return retValue;
        }
        /** 
         * 得到Cookie的值, 
         *  
         * @param request 
         * @param cookieName 
         * @return 
         */
        public static String getCookieValue(HttpServletRequest request, String cookieName, String encodeString) {
            Cookie[] cookieList = request.getCookies();
            if (cookieList == null || cookieName == null) {
                return null;
            }
            String retValue = null;
            try {
                for (int i = 0; i < cookieList.length; i++) {
                    if (cookieList[i].getName().equals(cookieName)) {
                        retValue = URLDecoder.decode(cookieList[i].getValue(), encodeString);
                        break;
                    }
                }
            }
            catch (UnsupportedEncodingException e) {
                e.printStackTrace();
            }
            return retValue;
        }
        /** 
         * 设置Cookie的值 不设置生效时间默认浏览器关闭即失效,也不编码 
         */
        public static void setCookie(HttpServletRequest request, HttpServletResponse response, String cookieName,  
                    String cookieValue) {
            setCookie(request, response, cookieName, cookieValue, -1);
        }
        /** 
         * 设置Cookie的值 在指定时间内生效,但不编码 
         */
        public static void setCookie(HttpServletRequest request, HttpServletResponse response, String cookieName,  
                    String cookieValue, int cookieMaxage) {
            setCookie(request, response, cookieName, cookieValue, cookieMaxage, false);
        }
        /** 
         * 设置Cookie的值 不设置生效时间,但编码 
         */
        public static void setCookie(HttpServletRequest request, HttpServletResponse response, String cookieName,  
                    String cookieValue, Boolean isEncode) {
            setCookie(request, response, cookieName, cookieValue, -1, isEncode);
        }
        /** 
         * 设置Cookie的值 在指定时间内生效, 编码参数 
         */
        public static void setCookie(HttpServletRequest request, HttpServletResponse response, String cookieName,  
                    String cookieValue, int cookieMaxage, Boolean isEncode) {
            doSetCookie(request, response, cookieName, cookieValue, cookieMaxage, isEncode);
        }
        /** 
         * 设置Cookie的值 在指定时间内生效, 编码参数(指定编码) 
         */
        public static void setCookie(HttpServletRequest request, HttpServletResponse response, String cookieName,  
                    String cookieValue, int cookieMaxage, String encodeString) {
            doSetCookie(request, response, cookieName, cookieValue, cookieMaxage, encodeString);
        }
        /** 
         * 删除Cookie带cookie域名 
         */
        public static void deleteCookie(HttpServletRequest request, HttpServletResponse response,  
                    String cookieName) {
            doSetCookie(request, response, cookieName, "", -1, false);
        }
        /** 
         * 设置Cookie的值,并使其在指定时间内生效 
         *  
         * @param cookieMaxage cookie生效的最大秒数 
         */
        private static final void doSetCookie(HttpServletRequest request, HttpServletResponse response,  
                    String cookieName, String cookieValue, int cookieMaxage, Boolean isEncode) {
            try {
                if (cookieValue == null) {
                    cookieValue = "";
                } else if (isEncode) {
                    cookieValue = URLEncoder.encode(cookieValue, "utf-8");
                }
                Cookie cookie = new Cookie(cookieName, cookieValue);
                if (cookieMaxage > 0)  
                                cookie.setMaxAge(cookieMaxage);
                if (null != request) {
                    // 设置域名的cookie  
                    String domainName = getDomainName(request);
                    System.out.println(domainName);
                    if (!"localhost".equals(domainName)) {
                        cookie.setDomain(domainName);
                    }
                }
                cookie.setPath("/");
                response.addCookie(cookie);
            }
            catch (Exception e) {
                e.printStackTrace();
            }
        }
        /** 
         * 设置Cookie的值,并使其在指定时间内生效 
         *  
         * @param cookieMaxage cookie生效的最大秒数 
         */
        private static final void doSetCookie(HttpServletRequest request, HttpServletResponse response,  
                    String cookieName, String cookieValue, int cookieMaxage, String encodeString) {
            try {
                if (cookieValue == null) {
                    cookieValue = "";
                } else {
                    cookieValue = URLEncoder.encode(cookieValue, encodeString);
                }
                Cookie cookie = new Cookie(cookieName, cookieValue);
                if (cookieMaxage > 0)  
                                cookie.setMaxAge(cookieMaxage);
                if (null != request) {
                    // 设置域名的cookie  
                    String domainName = getDomainName(request);
                    System.out.println(domainName);
                    if (!"localhost".equals(domainName)) {
                        cookie.setDomain(domainName);
                    }
                }
                cookie.setPath("/");
                response.addCookie(cookie);
            }
            catch (Exception e) {
                e.printStackTrace();
            }
        }
        /** 
         * 得到cookie的域名 
         */
        private static final String getDomainName(HttpServletRequest request) {
            String domainName = null;
            String serverName = request.getRequestURL().toString();
            if (serverName == null || serverName.equals("")) {
                domainName = "";
            } else {
                serverName = serverName.toLowerCase();
                serverName = serverName.substring(7);
                final int end = serverName.indexOf("/");
                serverName = serverName.substring(0, end);
                final String[] domains = serverName.split("\\.");
                int len = domains.length;
                if (len > 3) {
                    // www.xxx.com.cn  
                    domainName = "." + domains[len - 3] + "." + domains[len - 2] + "." + domains[len - 1];
                } else if (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];
            }
            return domainName;
        }
    }
    

    3.HttpClientUtil 相关包及文档下载

    package com.taotao.utils;
    import java.io.IOException;
    import java.net.URI;
    import java.util.ArrayList;
    import java.util.List;
    import java.util.Map;
    import org.apache.http.NameValuePair;
    import org.apache.http.client.entity.UrlEncodedFormEntity;
    import org.apache.http.client.methods.CloseableHttpResponse;
    import org.apache.http.client.methods.HttpGet;
    import org.apache.http.client.methods.HttpPost;
    import org.apache.http.client.utils.URIBuilder;
    import org.apache.http.entity.ContentType;
    import org.apache.http.entity.StringEntity;
    import org.apache.http.impl.client.CloseableHttpClient;
    import org.apache.http.impl.client.HttpClients;
    import org.apache.http.message.BasicNameValuePair;
    import org.apache.http.util.EntityUtils;
    public class HttpClientUtil {
        public static String doGet(String url, Map<String, String> param) {
            // 创建Httpclient对象  
            CloseableHttpClient httpclient = HttpClients.createDefault();
            String resultString = "";
            CloseableHttpResponse response = null;
            try {
                // 创建uri  
                URIBuilder builder = new URIBuilder(url);
                if (param != null) {
                    for (String key : param.keySet()) {
                        builder.addParameter(key, param.get(key));
                    }
                }
                URI uri = builder.build();
                // 创建http GET请求  
                HttpGet httpGet = new HttpGet(uri);
                // 执行请求  
                response = httpclient.execute(httpGet);
                // 判断返回状态是否为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();
                }
            }
            return resultString;
        }
        public static String doGet(String url) {
            return doGet(url, null);
        }
        public static String doPost(String url, Map<String, String> param) {
            // 创建Httpclient对象  
            CloseableHttpClient httpClient = HttpClients.createDefault();
            CloseableHttpResponse response = null;
            String resultString = "";
            try {
                // 创建Http Post请求  
                HttpPost httpPost = new HttpPost(url);
                // 创建参数列表  
                if (param != null) {
                    List<NameValuePair> paramList = new ArrayList<>();
                    for (String key : param.keySet()) {
                        paramList.add(new BasicNameValuePair(key, param.get(key)));
                    }
                    // 模拟表单  
                    UrlEncodedFormEntity entity = new UrlEncodedFormEntity(paramList);
                    httpPost.setEntity(entity);
                }
                // 执行http请求  
                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();
                }
            }
            return resultString;
        }
        public static String doPost(String url) {
            return doPost(url, null);
        }
        public static String doPostJson(String url, String json) {
            // 创建Httpclient对象  
            CloseableHttpClient httpClient = HttpClients.createDefault();
            CloseableHttpResponse response = null;
            String resultString = "";
            try {
                // 创建Http Post请求  
                HttpPost httpPost = new HttpPost(url);
                // 创建请求内容  
                StringEntity entity = new StringEntity(json, ContentType.APPLICATION_JSON);
                httpPost.setEntity(entity);
                // 执行http请求  
                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();
                }
            }
            return resultString;
        }
    }
    

    4.FastDFSClient工具类 相关包以及文档下载

    package cn.itcast.fastdfs.cliennt;
    import org.csource.common.NameValuePair;
    import org.csource.fastdfs.ClientGlobal;
    import org.csource.fastdfs.StorageClient1;
    import org.csource.fastdfs.StorageServer;
    import org.csource.fastdfs.TrackerClient;
    import org.csource.fastdfs.TrackerServer;
    public class FastDFSClient {
        private TrackerClient trackerClient = null;
        private TrackerServer trackerServer = null;
        private StorageServer storageServer = null;
        private StorageClient1 storageClient = null;
        public FastDFSClient(String conf) throws Exception {
            if (conf.contains("classpath:")) {
                conf = conf.replace("classpath:", this.getClass().getResource("/").getPath());
            }
            ClientGlobal.init(conf);
            trackerClient = new TrackerClient();
            trackerServer = trackerClient.getConnection();
            storageServer = null;
            storageClient = new StorageClient1(trackerServer, storageServer);
        }
        /** 
         * 上传文件方法 
         * <p>Title: uploadFile</p> 
         * <p>Description: </p> 
         * @param fileName 文件全路径 
         * @param extName 文件扩展名,不包含(.) 
         * @param metas 文件扩展信息 
         * @return 
         * @throws Exception 
         */
        public String uploadFile(String fileName, String extName, NameValuePair[] metas) throws Exception {
            String result = storageClient.upload_file1(fileName, extName, metas);
            return result;
        }
        public String uploadFile(String fileName) throws Exception {
            return uploadFile(fileName, null, null);
        }
        public String uploadFile(String fileName, String extName) throws Exception {
            return uploadFile(fileName, extName, null);
        }
        /** 
         * 上传文件方法 
         * <p>Title: uploadFile</p> 
         * <p>Description: </p> 
         * @param fileContent 文件的内容,字节数组 
         * @param extName 文件扩展名 
         * @param metas 文件扩展信息 
         * @return 
         * @throws Exception 
         */
        public String uploadFile(byte[] fileContent, String extName, NameValuePair[] metas) throws Exception {
            String result = storageClient.upload_file1(fileContent, extName, metas);
            return result;
        }
        public String uploadFile(byte[] fileContent) throws Exception {
            return uploadFile(fileContent, null, null);
        }
        public String uploadFile(byte[] fileContent, String extName) throws Exception {
            return uploadFile(fileContent, extName, null);
        }
    }
    
    public class FastDFSTest {  
        @Test  
        public void testFileUpload() throws Exception {
            // 1、加载配置文件,配置文件中的内容就是tracker服务的地址。  
            ClientGlobal.init("D:/workspaces-itcast/term197/taotao-manager-web/src/main/resources/resource/client.conf");
            // 2、创建一个TrackerClient对象。直接new一个。  
            TrackerClient trackerClient = new TrackerClient();
            // 3、使用TrackerClient对象创建连接,获得一个TrackerServer对象。  
            TrackerServer trackerServer = trackerClient.getConnection();
            // 4、创建一个StorageServer的引用,值为null  
            StorageServer storageServer = null;
            // 5、创建一个StorageClient对象,需要两个参数TrackerServer对象、StorageServer的引用  
            StorageClient storageClient = new StorageClient(trackerServer, storageServer);
            // 6、使用StorageClient对象上传图片。  
            //扩展名不带“.”  
            String[] strings = storageClient.upload_file("D:/Documents/Pictures/images/200811281555127886.jpg", "jpg", null);
            // 7、返回数组。包含组名和图片的路径。  
            for (String string : strings) {
                System.out.println(string);
            }
        }
    }
    

    5.获取异常的堆栈信息

    package com.taotao.utils;
    import java.io.PrintWriter;
    import java.io.StringWriter;
    public class ExceptionUtil {
        /** 
         * 获取异常的堆栈信息 
         *  
         * @param t 
         * @return 
         */
        public static String getStackTrace(Throwable t) {
            StringWriter sw = new StringWriter();
            PrintWriter pw = new PrintWriter(sw);
            try {
                t.printStackTrace(pw);
                return sw.toString();
            }
            finally {
                pw.close();
            }
        }
    }
    

    6.easyUIDataGrid对象返回值

    package com.taotao.result;
    import java.util.List;
    /** 
     * easyUIDataGrid对象返回值 
     * <p>Title: EasyUIResult</p> 
     * <p>Description: </p> 
     * <p>Company: www.itcast.com</p>  
     * @author  入云龙 
     * @date    2015年7月21日下午4:12:52 
     * @version 1.0 
     */
    public class EasyUIResult {
        private Integer total;
        private List<?> rows;
        public EasyUIResult(Integer total, List<?> rows) {
            this.total = total;
            this.rows = rows;
        }
        public EasyUIResult(long total, List<?> rows) {
            this.total = (int) total;
            this.rows = rows;
        }
        public Integer getTotal() {
            return total;
        }
        public void setTotal(Integer total) {
            this.total = total;
        }
        public List<?> getRows() {
            return rows;
        }
        public void setRows(List<?> rows) {
            this.rows = rows;
        }
    }
    

    7.ftp上传下载工具类

    package com.taotao.utils;
    import java.io.File;
    import java.io.FileInputStream;
    import java.io.FileNotFoundException;
    import java.io.FileOutputStream;
    import java.io.IOException;
    import java.io.InputStream;
    import java.io.OutputStream;
    import org.apache.commons.net.ftp.FTP;
    import org.apache.commons.net.ftp.FTPClient;
    import org.apache.commons.net.ftp.FTPFile;
    import org.apache.commons.net.ftp.FTPReply;
    /** 
     * ftp上传下载工具类 
     * <p>Title: FtpUtil</p> 
     * <p>Description: </p> 
     * <p>Company: www.itcast.com</p>  
     * @author  入云龙 
     * @date    2015年7月29日下午8:11:51 
     * @version 1.0 
     */
    public class FtpUtil {
        /**  
         * Description: 向FTP服务器上传文件  
         * @param host FTP服务器hostname  
         * @param port FTP服务器端口  
         * @param username FTP登录账号  
         * @param password FTP登录密码  
         * @param basePath FTP服务器基础目录 
         * @param filePath FTP服务器文件存放路径。例如分日期存放:/2015/01/01。文件的路径为basePath+filePath 
         * @param filename 上传到FTP服务器上的文件名  
         * @param input 输入流  
         * @return 成功返回true,否则返回false  
         */
        public static Boolean uploadFile(String host, int port, String username, String password, String basePath,  
                    String filePath, String filename, InputStream input) {
            Boolean result = false;
            FTPClient ftp = new FTPClient();
            try {
                int reply;
                ftp.connect(host, port);
                // 连接FTP服务器  
                // 如果采用默认端口,可以使用ftp.connect(host)的方式直接连接FTP服务器  
                ftp.login(username, password);
                // 登录  
                reply = ftp.getReplyCode();
                if (!FTPReply.isPositiveCompletion(reply)) {
                    ftp.disconnect();
                    return result;
                }
                //切换到上传目录  
                if (!ftp.changeWorkingDirectory(basePath+filePath)) {
                    //如果目录不存在创建目录  
                    String[] dirs = filePath.split("/");
                    String tempPath = basePath;
                    for (String dir : dirs) {
                        if (null == dir || "".equals(dir)) continue;
                        tempPath += "/" + dir;
                        if (!ftp.changeWorkingDirectory(tempPath)) {
                            if (!ftp.makeDirectory(tempPath)) {
                                return result;
                            } else {
                                ftp.changeWorkingDirectory(tempPath);
                            }
                        }
                    }
                }
                //设置上传文件的类型为二进制类型  
                ftp.setFileType(FTP.BINARY_FILE_TYPE);
                //上传文件  
                if (!ftp.storeFile(filename, input)) {
                    return result;
                }
                input.close();
                ftp.logout();
                result = true;
            }
            catch (IOException e) {
                e.printStackTrace();
            }
            finally {
                if (ftp.isConnected()) {
                    try {
                        ftp.disconnect();
                    }
                    catch (IOException ioe) {
                    }
                }
            }
            return result;
        }
        /**  
             * Description: 从FTP服务器下载文件  
             * @param host FTP服务器hostname  
             * @param port FTP服务器端口  
             * @param username FTP登录账号  
             * @param password FTP登录密码  
             * @param remotePath FTP服务器上的相对路径  
             * @param fileName 要下载的文件名  
             * @param localPath 下载后保存到本地的路径  
             * @return  
             */
        public static Boolean downloadFile(String host, int port, String username, String password, String remotePath,  
                    String fileName, String localPath) {
            Boolean result = false;
            FTPClient ftp = new FTPClient();
            try {
                int reply;
                ftp.connect(host, port);
                // 如果采用默认端口,可以使用ftp.connect(host)的方式直接连接FTP服务器  
                ftp.login(username, password);
                // 登录  
                reply = ftp.getReplyCode();
                if (!FTPReply.isPositiveCompletion(reply)) {
                    ftp.disconnect();
                    return result;
                }
                ftp.changeWorkingDirectory(remotePath);
                // 转移到FTP服务器目录  
                FTPFile[] fs = ftp.listFiles();
                for (FTPFile ff : fs) {
                    if (ff.getName().equals(fileName)) {
                        File localFile = new File(localPath + "/" + ff.getName());
                        OutputStream is = new FileOutputStream(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) {
                    }
                }
            }
            return result;
        }
        public static void main(String[] args) {
            try {
                FileInputStream in=new FileInputStream(new File("D:\\temp\\image\\gaigeming.jpg"));
                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生成策略

    package com.taotao.utils;
    import java.util.Random;
    /** 
     * 各种id生成策略 
     * <p>Title: IDUtils</p> 
     * <p>Description: </p> 
     * @date    2015年7月22日下午2:32:10 
     * @version 1.0 
     */
    public class IDUtils {
        /** 
         * 图片名生成 
         */
        public static String genImageName() {
            //取当前时间的长整形值包含毫秒  
            long millis = System.currentTimeMillis();
            //long millis = System.nanoTime();  
            //加上三位随机数  
            Random random = new Random();
            int end3 = random.nextint(999);
            //如果不足三位前面补0  
            String str = millis + String.format("%03d", end3);
            return str;
        }
        /** 
             * 商品id生成 
             */
        public static long genItemId() {
            //取当前时间的长整形值包含毫秒  
            long millis = System.currentTimeMillis();
            //long millis = System.nanoTime();  
            //加上两位随机数  
            Random random = new Random();
            int end2 = random.nextint(99);
            //如果不足两位前面补0  
            String str = millis + String.format("%02d", end2);
            long id = new long(str);
            return id;
        }
        public static void main(String[] args) {
            for (int i=0;i< 100;i++)  
                System.out.println(genItemId());
        }
    }
    

    9.上传图片返回值

    package com.result;
    /** 
     * 上传图片返回值 
     * <p>Title: PictureResult</p> 
     * <p>Description: </p> 
     * <p>Company: www.itcast.com</p>  
     * @author  入云龙 
     * @date    2015年7月22日下午2:09:02 
     * @version 1.0 
     */
    public class PictureResult {
        /** 
         * 上传图片返回值,成功:0 失败:1     
         */
        private Integer error;
        /** 
             * 回显图片使用的url 
             */
        private String url;
        /** 
             * 错误时的错误消息 
             */
        private String message;
        public PictureResult(Integer state, String url) {
            this.url = url;
            this.error = state;
        }
        public PictureResult(Integer state, String url, String errorMessage) {
            this.url = url;
            this.error = state;
            this.message = errorMessage;
        }
        public Integer getError() {
            return error;
        }
        public void setError(Integer error) {
            this.error = error;
        }
        public String getUrl() {
            return url;
        }
        public void setUrl(String url) {
            this.url = url;
        }
        public String getMessage() {
            return message;
        }
        public void setMessage(String message) {
            this.message = message;
        }
    }
    

    10.自定义响应结构

    package com.result;
    import java.util.List;
    import com.fasterxml.jackson.databind.JsonNode;
    import com.fasterxml.jackson.databind.ObjectMapper;
    /** 
     * 自定义响应结构 
     */
    public class TaotaoResult {
        // 定义jackson对象  
        private static final ObjectMapper MAPPER = new ObjectMapper();
        // 响应业务状态  
        private Integer status;
        // 响应消息  
        private String msg;
        // 响应中的数据  
        private Object data;
        public static TaotaoResult build(Integer status, String msg, Object data) {
            return new TaotaoResult(status, msg, data);
        }
        public static TaotaoResult ok(Object data) {
            return new TaotaoResult(data);
        }
        public static TaotaoResult ok() {
            return new TaotaoResult(null);
        }
        public TaotaoResult() {
        }
        public static TaotaoResult build(Integer status, String msg) {
            return new TaotaoResult(status, msg, null);
        }
        public TaotaoResult(Integer status, String msg, Object data) {
            this.status = status;
            this.msg = msg;
            this.data = data;
        }
        public TaotaoResult(Object data) {
            this.status = 200;
            this.msg = "OK";
            this.data = data;
        }
        //    public Boolean isOK() {  
        //        return this.status == 200;  
        //    }  
        public Integer getStatus() {
            return status;
        }
        public void setStatus(Integer status) {
            this.status = status;
        }
        public String getMsg() {
            return msg;
        }
        public void setMsg(String msg) {
            this.msg = msg;
        }
        public Object getData() {
            return data;
        }
        public void setData(Object data) {
            this.data = data;
        }
        /** 
             * 将json结果集转化为TaotaoResult对象 
             *  
             * @param jsonData json数据 
             * @param clazz TaotaoResult中的object类型 
             * @return 
             */
        public static TaotaoResult formatToPojo(String jsonData, Class<?> clazz) {
            try {
                if (clazz == null) {
                    return MAPPER.readValue(jsonData, TaotaoResult.class);
                }
                JsonNode jsonNode = MAPPER.readTree(jsonData);
                JsonNode data = jsonNode.get("data");
                Object obj = null;
                if (clazz != null) {
                    if (data.isObject()) {
                        obj = MAPPER.readValue(data.traverse(), clazz);
                    } else if (data.isTextual()) {
                        obj = MAPPER.readValue(data.asText(), clazz);
                    }
                }
                return build(jsonNode.get("status").intValue(), jsonNode.get("msg").asText(), obj);
            }
            catch (Exception e) {
                return null;
            }
        }
        /** 
             * 没有object对象的转化 
             *  
             * @param json 
             * @return 
             */
        public static TaotaoResult format(String json) {
            try {
                return MAPPER.readValue(json, TaotaoResult.class);
            }
            catch (Exception e) {
                e.printStackTrace();
            }
            return null;
        }
        /** 
             * Object是集合转化 
             *  
             * @param jsonData json数据 
             * @param clazz 集合中的类型 
             * @return 
             */
        public static TaotaoResult formatToList(String jsonData, Class<?> clazz) {
            try {
                JsonNode jsonNode = MAPPER.readTree(jsonData);
                JsonNode data = jsonNode.get("data");
                Object obj = null;
                if (data.isArray() && data.size() > 0) {
                    obj = MAPPER.readValue(data.traverse(),  
                                            MAPPER.getTypeFactory().constructCollectionType(List.class, clazz));
                }
                return build(jsonNode.get("status").intValue(), jsonNode.get("msg").asText(), obj);
            }
            catch (Exception e) {
                return null;
            }
        }
    }
    

    11.jedis操作

    package com.taotao.jedis;
    public interface JedisClient {
        String set(String key, String value);
        String get(String key);
        Boolean exists(String key);
        long expire(String key, int seconds);
        long ttl(String key);
        long incr(String key);
        long hset(String key, String field, String value);
        String hget(String key, String field);
        long hdel(String key, String... field);
    }
    
    package com.taotao.jedis;
    import org.springframework.beans.factory.annotation.Autowired;
    import redis.clients.jedis.JedisCluster;
    public class JedisClientCluster implements JedisClient {
        @Autowired  
        private JedisCluster jedisCluster;
        @Override  
        public String set(String key, String value) {
            return jedisCluster.set(key, value);
        }
        @Override  
        public String get(String key) {
            return jedisCluster.get(key);
        }
        @Override  
        public Boolean exists(String key) {
            return jedisCluster.exists(key);
        }
        @Override  
        public long expire(String key, int seconds) {
            return jedisCluster.expire(key, seconds);
        }
        @Override  
        public long ttl(String key) {
            return jedisCluster.ttl(key);
        }
        @Override  
        public long incr(String key) {
            return jedisCluster.incr(key);
        }
        @Override  
        public long hset(String key, String field, String value) {
            return jedisCluster.hset(key, field, value);
        }
        @Override  
        public String hget(String key, String field) {
            return jedisCluster.hget(key, field);
        }
        @Override  
        public long hdel(String key, String... field) {
            return jedisCluster.hdel(key, field);
        }
    }
    
    package com.taotao.jedis;
    import org.springframework.beans.factory.annotation.Autowired;
    import redis.clients.jedis.Jedis;
    import redis.clients.jedis.JedisPool;
    public class JedisClientPool implements JedisClient {
        @Autowired  
        private JedisPool jedisPool;
        @Override  
        public String set(String key, String value) {
            Jedis jedis = jedisPool.getResource();
            String result = jedis.set(key, value);
            jedis.close();
            return result;
        }
        @Override  
        public String get(String key) {
            Jedis jedis = jedisPool.getResource();
            String result = jedis.get(key);
            jedis.close();
            return result;
        }
        @Override  
        public Boolean exists(String key) {
            Jedis jedis = jedisPool.getResource();
            Boolean result = jedis.exists(key);
            jedis.close();
            return result;
        }
        @Override  
        public long expire(String key, int seconds) {
            Jedis jedis = jedisPool.getResource();
            long result = jedis.expire(key, seconds);
            jedis.close();
            return result;
        }
        @Override  
        public long ttl(String key) {
            Jedis jedis = jedisPool.getResource();
            long result = jedis.ttl(key);
            jedis.close();
            return result;
        }
        @Override  
        public long incr(String key) {
            Jedis jedis = jedisPool.getResource();
            long result = jedis.incr(key);
            jedis.close();
            return result;
        }
        @Override  
        public long hset(String key, String field, String value) {
            Jedis jedis = jedisPool.getResource();
            long result = jedis.hset(key, field, value);
            jedis.close();
            return result;
        }
        @Override  
        public String hget(String key, String field) {
            Jedis jedis = jedisPool.getResource();
            String result = jedis.hget(key, field);
            jedis.close();
            return result;
        }
        @Override  
        public long hdel(String key, String... field) {
            Jedis jedis = jedisPool.getResource();
            long result = jedis.hdel(key, field);
            jedis.close();
            return result;
        }
    }
    

    相关文章

      网友评论

          本文标题:常用的Java工具类

          本文链接:https://www.haomeiwen.com/subject/lttdaftx.html