个人工具类

一、项目地址:https://gitee.com/winallt/common-utils.git

二、项目结构:

三、功能描述:

3.1、加密功能

支持MD5,Base64和AES,具体方法如下


AESUtil {
	

	/**
	 * AES加密
	 *
	 * @param data
	 * @return
	 * @throws Exception
	 */
	public static String encryptData(String data,String  key) ;

	/**
	 * AES解密
	 *
	 * @param base64Data
	 * @return
	 * @throws Exception
	 */
	public static String decryptData(String base64Data,String  key) ;
}
Base64Util {


    /**
     * 解密
     * @param encodedText
     * @return
     */
    public static String decode(String encodedText);
    /**
     * 加密
     * @param data
     * @return
     */
    public static String encode(String  data) ;

    /**
     * 解密(排除+ ,/这种在URL中必须转移的字符)
     * @param encodedText
     * @return
     */
    public static String  decodeURL(String encodedText);

    /**
     * 解密(排除+ ,/这种在URL中必须转移的字符)
     * @param data
     * @return
     */
    public static String encodeURL(String  data) ;

}
MD5Util {
	
	/**
	 * 转换字节数组为16进制字串
	 * @param b 字节数组
	 * @return 16进制字串
	 */
	public static String byteArrayToHexString(byte[] b) ;

	/**
	 * 转换byte到16进制
	 * @param b 要转换的byte
	 * @return 16进制格式
	 */
	private static String byteToHexString(byte b) ;

	/**
	 * MD5编码
	 * @param origin 原始字符串
	 * @return 经过MD5加密之后的结果
	 */
	public static String MD5Encode(String origin);

}

3.2 代码生成功能

GenJavaObjectUtils {


    /**
     *  根据word文档生成实体类(主要用于对接三方文档)
     * @param inputStream 输入的文件流
     * @param entity 实体类相关配置
     * @return
     * @throws IOException
     */
    public static byte[] genEntity(InputStream inputStream, TableEntity entity) ;

    /**
     * 根据json对象生成实体类
     * @param entity
     * @return
     * @throws IOException
     */
    public static byte[] genEntity(JsonEntity entity);
}

3.3 日期对象处理

DateTimeUtils {

    /**
     * 按照指定格式 格式化LocalDateTime
     *
     * @param localDateTime
     * @param formart       默认格式为yyyy-MM-dd HH:ss:mm
     * @return
     */
    public static String formatLocalDateTime(@NotNull LocalDateTime localDateTime, @Nullable String formart) ;

    /**
     * 按照指定格式 解析String
     *
     * @param dateTimeStr
     * @param formart     默认格式为yyyy-MM-dd HH:ss:mm
     * @return
     */
    public static LocalDateTime parseLocalDateTime(@NotNull String dateTimeStr, @Nullable String formart);


    /**
     * Date转LocalDateTime
     *
     * @param date
     * @param zoneId 时区
     * @return
     */
    public static LocalDateTime dateToLocalDateTime(@NotNull Date date, @Nullable ZoneId zoneId);

    /**
     * LocalDateTime转date
     *
     * @param localDateTime
     * @param zoneOffset    时区
     * @return
     */
    public static Date localDateTimeToDate(LocalDateTime localDateTime, @Nullable ZoneOffset zoneOffset);


    /**
     * 对日期时间更改
     *
     * @param localDateTime
     * @param amount
     * @param type
     * @param zoneOffset
     * @return
     */
    public static LocalDateTime changeLocalDateTimeByType(LocalDateTime localDateTime, int amount, String type, @Nullable ZoneOffset zoneOffset) ;

    /**
     * 根据时间获取时间戳
     *
     * @param dateTime
     * @return
     */
    public static Long localDateTimeToTimestamp(LocalDateTime dateTime, @Nullable ZoneOffset zoneOffset) ;

    /**
     * 根据时间戳获取日期时间
     *
     * @param timestamp
     * @return
     */
    public static LocalDateTime timestampToLocalDateTime(@NotNull Long timestamp, @Nullable ZoneOffset zoneOffset) ;

    /**
     *
     * @param date
     * @param type value:start or end
     * @param formart
     * @return
     */
    public static LocalDateTime dateToDateTime(@NotNull String date, @NotNull String type, @Nullable String formart) ;

}

3.4 货币处理

CurrencyUtils {


    /**
     * 元转分
     *
     * @param money 支持字符串,整型,浮点型,BigDecimal
     * @return
     */
    public static BigDecimal yuanToFen(@NotNull Object money);

    /**
     * 分转元
     *
     * @param money 支持字符串,整型,浮点型,BigDecimal
     * @return
     */
    public static BigDecimal fenToYuan(@NotNull Object money);
    /**
     * 转汉字
     *
     * @param money 精确到分
     * @return
     */
    public static String toChinese(@NotNull BigDecimal money);
 

}

3.5 邮件发送

MailUtils {

  
    /**
     * 不定人数发送邮件
     * @param title  主题
     * @param content 内容
     * @param address 地址
     * @throws Exception
     */
    public static void send(String title, String content, String... address);

   
}

3.6 IP处理

IpUtils {

    /**
     * 添加白名单(IP4:格式为xx.xx.xx.xx)
     */
    public static void addWhiteIp(String whiteIp);

    /**
     * 判断是否在白名单中(IP6:格式为xx.xx.xx.xx)
     *
     * @param ip
     * @return
     */
    public static boolean isWhiteIp(String ip);


    /**
     * 获得内网IP
     *
     * @return 内网IP
     */
    private static String getIntranetIp() ;

    /**
     * 获得外网IP(物理方法,可能获取虚拟机IP)
     *
     * @return 外网IP
     */
    private static String getInternetIp() ;

    /**
     * 获取真实公网IP(联网获取)
     *
     * @return
     */
    public static String getRemoteIp();
}

3.7 反射增强

ReflectUtils {

    /**
     * 获取对象的字段(不包括父类)
     *
     * @param t
     * @param access
     * @param <T>
     * @return
     */
    public static <T> Field[] getFields(T t, boolean access);

    /**
     * 获取对象全部属性,包括父类的
     * @param t
     * @param <T>
     * @return
     */
    public static <T> Field[] getAllFields(T t);


    /**
     * 获取父类泛型
     * @param bean
     * @return
     */
    public static Class getSupperGenericInstance(Object bean) ;
}

3.8 对象COPY

ModelMapperUtils {

 
    /**
     * 对象转对象
     * @param clazz
     * @param source
     * @param <T>
     * @param <D>
     * @return
     */
    public static <T, D> T map(Class<T> clazz, final D source);

    /**
     * 对象转集合
     * @param clazz
     * @param sources
     * @param <T>
     * @param <D>
     * @return
     */
    public static <T, D> List<T> mapList(Class<T> clazz, final Collection<D> sources) ;

    /**
     * 对象转Map(支持属性名和map的key值不一致)
     * @param bean
     * @param needNullParam
     * @return
     */
    public static Map<String, Object> beanToMap(Object bean, boolean needNullParam) ;
}

3.9 word模版技术

WordUtils {

  
    /**
     * 生成word文件
     *
     * @param templatePath 模板所在路径
     * @param templateName 模板名称
     * @param targetData  数据源
     */
    public static byte[] createDoc(String templatePath, String templateName, Object targetData) ;


    /**
     * 实现word模板填充
     *
     * @param inputStream
     *            模板输入流
     * @param bean
     *            待填充的数据
     * @throws IOException
     */
    public static byte[] fillDocx(InputStream inputStream, Object bean) throws IOException ;

   

    /**
     * 将word转换成html   支持 .doc and .docx
     * @param inputStream
     * @param type
     * @return
     * @throws TransformerException
     * @throws IOException
     * @throws ParserConfigurationException
     */
    public static byte[] wordToHtml(InputStream inputStream,String type,String outPutFilePath)   ;

}

3.10 爬虫工具

WebMagicUtils {

    /**
     * 抓取
     *
     * @param beginUrl 指定开始抓取的页面
     * @param linkReg  获取页面下满足要求的链接
     * @param xpath    指定抓取的内容
     * @return
     */
    public Map<String, List<String>> getInfo(String beginUrl, String linkReg, Map<String, String> xpath,String proxyPath) ;

}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章