日常工具类集和 gblfy版本
Cookie CookieUtil.java
BigDecimal BigDecimalUtil.java
日期 DateTimeUtil.java
FTP FTPUtil.java
Json JsonUtil.java
MD5 MD5Util.java
Properties PropertiesUtil.java

CookieUtil.java

package com.mmall.util;import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang.StringUtils;import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;/*** Created by geely*/
@Slf4j
public class CookieUtil {private final static String COOKIE_DOMAIN = ".happymmall.com";private final static String COOKIE_NAME = "mmall_login_token";public static String readLoginToken(HttpServletRequest request){Cookie[] cks = request.getCookies();if(cks != null){for(Cookie ck : cks){log.info("read cookieName:{},cookieValue:{}",ck.getName(),ck.getValue());if(StringUtils.equals(ck.getName(),COOKIE_NAME)){log.info("return cookieName:{},cookieValue:{}",ck.getName(),ck.getValue());return ck.getValue();}}}return null;}//X:domain=".happymmall.com"//a:A.happymmall.com            cookie:domain=A.happymmall.com;path="/"//b:B.happymmall.com            cookie:domain=B.happymmall.com;path="/"//c:A.happymmall.com/test/cc    cookie:domain=A.happymmall.com;path="/test/cc"//d:A.happymmall.com/test/dd    cookie:domain=A.happymmall.com;path="/test/dd"//e:A.happymmall.com/test       cookie:domain=A.happymmall.com;path="/test"public static void writeLoginToken(HttpServletResponse response,String token){Cookie ck = new Cookie(COOKIE_NAME,token);ck.setDomain(COOKIE_DOMAIN);ck.setPath("/");//代表设置在根目录ck.setHttpOnly(true);//单位是秒。//如果这个maxage不设置的话,cookie就不会写入硬盘,而是写在内存。只在当前页面有效。ck.setMaxAge(60 * 60 * 24 * 365);//如果是-1,代表永久log.info("write cookieName:{},cookieValue:{}",ck.getName(),ck.getValue());response.addCookie(ck);}public static void delLoginToken(HttpServletRequest request,HttpServletResponse response){Cookie[] cks = request.getCookies();if(cks != null){for(Cookie ck : cks){if(StringUtils.equals(ck.getName(),COOKIE_NAME)){ck.setDomain(COOKIE_DOMAIN);ck.setPath("/");ck.setMaxAge(0);//设置成0,代表删除此cookie。log.info("del cookieName:{},cookieValue:{}",ck.getName(),ck.getValue());response.addCookie(ck);return;}}}}
}

BigDecimalUtil.java

package com.mmall.util;import java.math.BigDecimal;/*** Created by geely*/
public class BigDecimalUtil {private BigDecimalUtil(){}public static BigDecimal add(double v1,double v2){BigDecimal b1 = new BigDecimal(Double.toString(v1));BigDecimal b2 = new BigDecimal(Double.toString(v2));return b1.add(b2);}public static BigDecimal sub(double v1,double v2){BigDecimal b1 = new BigDecimal(Double.toString(v1));BigDecimal b2 = new BigDecimal(Double.toString(v2));return b1.subtract(b2);}public static BigDecimal mul(double v1,double v2){BigDecimal b1 = new BigDecimal(Double.toString(v1));BigDecimal b2 = new BigDecimal(Double.toString(v2));return b1.multiply(b2);}public static BigDecimal div(double v1,double v2){BigDecimal b1 = new BigDecimal(Double.toString(v1));BigDecimal b2 = new BigDecimal(Double.toString(v2));return b1.divide(b2,2,BigDecimal.ROUND_HALF_UP);//四舍五入,保留2位小数//除不尽的情况}
}

DateTimeUtil.java

package com.mmall.util;import org.apache.commons.lang3.StringUtils;
import org.joda.time.DateTime;
import org.joda.time.format.DateTimeFormat;
import org.joda.time.format.DateTimeFormatter;import java.util.Date;/*** Created by geely*/
public class DateTimeUtil {//joda-time//str->Date//Date->strpublic static final String STANDARD_FORMAT = "yyyy-MM-dd HH:mm:ss";public static Date strToDate(String dateTimeStr,String formatStr){DateTimeFormatter dateTimeFormatter = DateTimeFormat.forPattern(formatStr);DateTime dateTime = dateTimeFormatter.parseDateTime(dateTimeStr);return dateTime.toDate();}public static String dateToStr(Date date,String formatStr){if(date == null){return StringUtils.EMPTY;}DateTime dateTime = new DateTime(date);return dateTime.toString(formatStr);}public static Date strToDate(String dateTimeStr){DateTimeFormatter dateTimeFormatter = DateTimeFormat.forPattern(STANDARD_FORMAT);DateTime dateTime = dateTimeFormatter.parseDateTime(dateTimeStr);return dateTime.toDate();}public static String dateToStr(Date date){if(date == null){return StringUtils.EMPTY;}DateTime dateTime = new DateTime(date);return dateTime.toString(STANDARD_FORMAT);}public static void main(String[] args) {System.out.println(DateTimeUtil.dateToStr(new Date(),"yyyy-MM-dd HH:mm:ss"));System.out.println(DateTimeUtil.strToDate("2010-01-01 11:11:11","yyyy-MM-dd HH:mm:ss"));}
}

FTPUtil.java

package com.mmall.util;import lombok.extern.slf4j.Slf4j;
import org.apache.commons.net.ftp.FTPClient;import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.util.List;/*** Created by geely*/
@Slf4j
public class FTPUtil {private static String ftpIp = PropertiesUtil.getProperty("ftp.server.ip");private static String ftpUser = PropertiesUtil.getProperty("ftp.user");private static String ftpPass = PropertiesUtil.getProperty("ftp.pass");public FTPUtil(String ip,int port,String user,String pwd){this.ip = ip;this.port = port;this.user = user;this.pwd = pwd;}public static boolean uploadFile(List<File> fileList) throws IOException {FTPUtil ftpUtil = new FTPUtil(ftpIp,21,ftpUser,ftpPass);log.info("开始连接ftp服务器");boolean result = ftpUtil.uploadFile("img",fileList);log.info("开始连接ftp服务器,结束上传,上传结果:{}");return result;}private boolean uploadFile(String remotePath,List<File> fileList) throws IOException {boolean uploaded = true;FileInputStream fis = null;//连接FTP服务器if(connectServer(this.ip,this.port,this.user,this.pwd)){try {ftpClient.changeWorkingDirectory(remotePath);ftpClient.setBufferSize(1024);ftpClient.setControlEncoding("UTF-8");ftpClient.setFileType(FTPClient.BINARY_FILE_TYPE);ftpClient.enterLocalPassiveMode();for(File fileItem : fileList){fis = new FileInputStream(fileItem);ftpClient.storeFile(fileItem.getName(),fis);}} catch (IOException e) {log.error("上传文件异常",e);uploaded = false;e.printStackTrace();} finally {fis.close();ftpClient.disconnect();}}return uploaded;}private boolean connectServer(String ip,int port,String user,String pwd){boolean isSuccess = false;ftpClient = new FTPClient();try {ftpClient.connect(ip);isSuccess = ftpClient.login(user,pwd);} catch (IOException e) {log.error("连接FTP服务器异常",e);}return isSuccess;}private String ip;private int port;private String user;private String pwd;private FTPClient ftpClient;public String getIp() {return ip;}public void setIp(String ip) {this.ip = ip;}public int getPort() {return port;}public void setPort(int port) {this.port = port;}public String getUser() {return user;}public void setUser(String user) {this.user = user;}public String getPwd() {return pwd;}public void setPwd(String pwd) {this.pwd = pwd;}public FTPClient getFtpClient() {return ftpClient;}public void setFtpClient(FTPClient ftpClient) {this.ftpClient = ftpClient;}
}

JsonUtil.java

package com.mmall.util;import com.google.common.collect.Lists;
import com.mmall.pojo.Category;
import com.mmall.pojo.TestPojo;
import com.mmall.pojo.User;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang.StringUtils;
import org.codehaus.jackson.map.DeserializationConfig;
import org.codehaus.jackson.map.ObjectMapper;
import org.codehaus.jackson.map.SerializationConfig;
import org.codehaus.jackson.map.annotate.JsonSerialize.Inclusion;
import org.codehaus.jackson.type.JavaType;
import org.codehaus.jackson.type.TypeReference;import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;/*** Created by geely*/
@Slf4j
public class JsonUtil {private static ObjectMapper objectMapper = new ObjectMapper();static{//对象的所有字段全部列入objectMapper.setSerializationInclusion(Inclusion.ALWAYS);//取消默认转换timestamps形式objectMapper.configure(SerializationConfig.Feature.WRITE_DATES_AS_TIMESTAMPS,false);//忽略空Bean转json的错误objectMapper.configure(SerializationConfig.Feature.FAIL_ON_EMPTY_BEANS,false);//所有的日期格式都统一为以下的样式,即yyyy-MM-dd HH:mm:ssobjectMapper.setDateFormat(new SimpleDateFormat(DateTimeUtil.STANDARD_FORMAT));//忽略 在json字符串中存在,但是在java对象中不存在对应属性的情况。防止错误objectMapper.configure(DeserializationConfig.Feature.FAIL_ON_UNKNOWN_PROPERTIES,false);}public static <T> String obj2String(T obj){if(obj == null){return null;}try {return obj instanceof String ? (String)obj :  objectMapper.writeValueAsString(obj);} catch (Exception e) {log.warn("Parse Object to String error",e);return null;}}public static <T> String obj2StringPretty(T obj){if(obj == null){return null;}try {return obj instanceof String ? (String)obj :  objectMapper.writerWithDefaultPrettyPrinter().writeValueAsString(obj);} catch (Exception e) {log.warn("Parse Object to String error",e);return null;}}public static <T> T string2Obj(String str,Class<T> clazz){if(StringUtils.isEmpty(str) || clazz == null){return null;}try {return clazz.equals(String.class)? (T)str : objectMapper.readValue(str,clazz);} catch (Exception e) {log.warn("Parse String to Object error",e);return null;}}public static <T> T string2Obj(String str, TypeReference<T> typeReference){if(StringUtils.isEmpty(str) || typeReference == null){return null;}try {return (T)(typeReference.getType().equals(String.class)? str : objectMapper.readValue(str,typeReference));} catch (Exception e) {log.warn("Parse String to Object error",e);return null;}}public static <T> T string2Obj(String str,Class<?> collectionClass,Class<?>... elementClasses){JavaType javaType = objectMapper.getTypeFactory().constructParametricType(collectionClass,elementClasses);try {return objectMapper.readValue(str,javaType);} catch (Exception e) {log.warn("Parse String to Object error",e);return null;}}public static void main(String[] args) {TestPojo testPojo = new TestPojo();testPojo.setName("Geely");testPojo.setId(666);//{"name":"Geely","id":666}String json = "{\"name\":\"Geely\",\"color\":\"blue\",\"id\":666}";TestPojo testPojoObject = JsonUtil.string2Obj(json,TestPojo.class);
//        String testPojoJson = JsonUtil.obj2String(testPojo);
//        log.info("testPojoJson:{}",testPojoJson);log.info("end");//        User user = new User();
//        user.setId(2);
//        user.setEmail("geely@happymmall.com");
//        user.setCreateTime(new Date());
//        String userJsonPretty = JsonUtil.obj2StringPretty(user);
//        log.info("userJson:{}",userJsonPretty);//        User u2 = new User();
//        u2.setId(2);
//        u2.setEmail("geelyu2@happymmall.com");
//
//
//
//        String user1Json = JsonUtil.obj2String(u1);
//
//        String user1JsonPretty = JsonUtil.obj2StringPretty(u1);
//
//        log.info("user1Json:{}",user1Json);
//
//        log.info("user1JsonPretty:{}",user1JsonPretty);
//
//
//        User user = JsonUtil.string2Obj(user1Json,User.class);
//
//
//        List<User> userList = Lists.newArrayList();
//        userList.add(u1);
//        userList.add(u2);
//
//        String userListStr = JsonUtil.obj2StringPretty(userList);
//
//        log.info("==================");
//
//        log.info(userListStr);
//
//
//        List<User> userListObj1 = JsonUtil.string2Obj(userListStr, new TypeReference<List<User>>() {
//        });
//
//
//        List<User> userListObj2 = JsonUtil.string2Obj(userListStr,List.class,User.class);System.out.println("end");}
}

MD5Util.java

package com.mmall.util;import org.springframework.util.StringUtils;import java.security.MessageDigest;/*** Created by geely*/
public class MD5Util {private static String byteArrayToHexString(byte b[]) {StringBuffer resultSb = new StringBuffer();for (int i = 0; i < b.length; i++)resultSb.append(byteToHexString(b[i]));return resultSb.toString();}private static String byteToHexString(byte b) {int n = b;if (n < 0)n += 256;int d1 = n / 16;int d2 = n % 16;return hexDigits[d1] + hexDigits[d2];}/*** 返回大写MD5** @param origin* @param charsetname* @return*/private static String MD5Encode(String origin, String charsetname) {String resultString = null;try {resultString = new String(origin);MessageDigest md = MessageDigest.getInstance("MD5");if (charsetname == null || "".equals(charsetname))resultString = byteArrayToHexString(md.digest(resultString.getBytes()));elseresultString = byteArrayToHexString(md.digest(resultString.getBytes(charsetname)));} catch (Exception exception) {}return resultString.toUpperCase();}public static String MD5EncodeUtf8(String origin) {origin = origin + PropertiesUtil.getProperty("password.salt", "");return MD5Encode(origin, "utf-8");}private static final String hexDigits[] = {"0", "1", "2", "3", "4", "5","6", "7", "8", "9", "a", "b", "c", "d", "e", "f"};}

PropertiesUtil.java

package com.mmall.util;import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Properties;/*** Created by geely*/
@Slf4j
public class PropertiesUtil {private static Properties props;static {String fileName = "mmall.properties";props = new Properties();try {props.load(new InputStreamReader(PropertiesUtil.class.getClassLoader().getResourceAsStream(fileName),"UTF-8"));} catch (IOException e) {log.error("配置文件读取异常",e);}}public static String getProperty(String key){String value = props.getProperty(key.trim());if(StringUtils.isBlank(value)){return null;}return value.trim();}public static String getProperty(String key,String defaultValue){String value = props.getProperty(key.trim());if(StringUtils.isBlank(value)){value = defaultValue;}return value.trim();}
}

工具类集和_gblfy版本相关推荐

  1. Java 常用的工具类—判断Excel版本读取Excel/CSV文件

    以下内容均来自实际项目需求,记录下,网上找的读取Excel会出现不少问题,下面代码是经过好多次测试改进的符合现在项目的代码,如有不同要求,请自行修改,代码均只去掉了包名. 注:我们的Excel 第一行 ...

  2. Redis 工具类_慕课版本

    缓存 Redis Redis 连接池 RedisPoolUtil.java Redis 集群 连接 RedisShardedPoolUtil.java 通用部分 RedisPool.java 通用部分 ...

  3. mongodb java 单例_JAVA单例MongoDB工具类详解

    shasha 2018年09月07日 681 0 JAVA单例MongoDB工具类 JAVA驱动版本: org.mongodb mongo-java-driver 3.0.2 工具类代码如下: pac ...

  4. java 文件拷贝保留原来的属性_Java常用属性拷贝工具类使用总结

    开头聊几句 1.网上很多的技术文章和资料是有问题的,要学会辨证的看待,不能随便就拿来用,起码要自己验证一下 2.关注当下,关注此刻,如果你真正阅读本篇文章,请花几分钟时间的注意力阅读,相信你会有收获的 ...

  5. 拿来即用,HttpUtil工具类

    HttpUtil工具类 注意低版本有bug.https://mvnrepository.com/artifact/org.apache.httpcomponents/httpclient <!- ...

  6. 【Android 内存优化】Bitmap 内存缓存 ( Bitmap 内存复用 | 弱引用 | 引用队列 | 针对不同 Android 版本开发不同的 Bitmap 复用策略 | 工具类代码 )

    文章目录 一.Bitmap 复用池 二.弱引用 Bitmap 内存释放 三.从 Bitmap 复用池中获取对应可以被复用的 Bitmap 对象 1.Android 2.3.3(API 级别 10)及以 ...

  7. 关于jedis2.4以上版本的连接池配置,及工具类

    jedis.propertise 注意以前版本的maxAcitve和maxWait有所改变,JVM根据系统环境变量ServerType中的值 取不同的配置,实现多环境(测试环境.生产环境)集成. re ...

  8. 水晶报表 jar包版本过低_工具类学习-UReport报表设计器整合

    dada-report报表整合UReport报表设计器工具 结合日常工作和学习实践,针对传统报表子站面临的问题,尝试借助UReport报表设计器解决 1.可在现有工程基础上引入Ureport2报表设计 ...

  9. Excel和Word 简易工具类,JEasyPoi 2.1.7 版本发布

    JEasyPOI 简介 EasyPOI 功能如同名字easy,追求的就是简易,让一个没接触过poi的人员,可以傻瓜化的快速实现Excel导入导出.Word模板导出,可以仅仅5行代码就可以完成Excel ...

最新文章

  1. python字典{:4}_Python字典101:详细的视觉介绍
  2. python中用于绘制各种图形、标注文本_python ImageDraw类实现几何图形的绘制与文字的绘制...
  3. Android开发之旅:android架构
  4. img 标签 点击跳出图层_你竟然不知道cad图层也可以导出与导入?
  5. Java ClassLoader findLibrary()方法与示例
  6. 8个jQuery Mobile基础教程
  7. Windows 不能在 本地计算机 启动 SQL Server(MSSQLSERVER) 10048
  8. 基于高德地图API — 绘制热力图初尝试
  9. windows-由于系统的默认编码不一致导致解压后的文件名显示乱码
  10. 鹅厂假前端实习鹅的实习日志
  11. 千兆路由器怎么设置网速最快_如何设置路由器使网速最快
  12. 君莫笑系列视频学习(4)
  13. hdu 1907 & hdu 2509(Nim博弈)
  14. windows 进程监控 Procmon.exe
  15. spyder pyecharts不显示_微星PAG272QRZ显示器好不好用 微星PAG272QRZ显示器全面评测_显示器_硬件教程...
  16. KNN 及 matplotlib 数据归一化
  17. 前序中序出后序——二叉树
  18. 地理空间数据格式——OGC-GML
  19. Charles抓包出现unknown问题
  20. 计算机网络——第2章 物理层

热门文章

  1. 二叉树学习之非递归遍历
  2. 巧用快捷键轻松设置Excel单元格格式
  3. mongodb最详细的安装与配置
  4. Spring Cloud Gateway一次请求调用源码解析
  5. 来电科技:基于Flink+Hologres的实时数仓演进之路
  6. 笑联 x mPaaS | 12 个模块,全面小程序化,如何打造真正的一次开发复用多端?
  7. 相信坚持的力量,我的程序员打怪升级之路
  8. 探索PCIe 3.0峰值性能,长江存储推新消费级固态硬盘致态TiPlus5000
  9. 赋能工业互联网融合发展 | 北京信息化和工业化融合服务联盟平台化设计专业委员会、中国仿真学会CAE仿真专业委员会成立
  10. 如何给女朋友解释什么是3PC?