hutool工具私人学习笔记

一、基础概念:
   1、hutool是一个Java工具包,也只是一个工具包,它帮助我们简化每一行代码,减少每一个方法,
      让Java语言也可以“甜甜的”。Hutool最初是作者项目中“util”包的一个整理,后来慢慢积累并加入更多非业务相关功能,
      并广泛学习其它开源项目精髓,经过作者的整理修改,最终形成丰富的开源工具集。hutool工具包是国内开发者创建的。
      官方网址:https://hutool.cn/
      文档地址:https://hutool.cn/docs/#/
    
    
    
    
    2、hutool是个大工具集,对文件、流、加密解密、转码、正则、线程、XML等JDK方法进行封装,组成各种Util工具类,同时提供以下组件:
            模块                                        介绍
        hutool-aop                        JDK动态代理封装,提供非IOC下的切面支持
        hutool-bloomFilter                布隆过滤,提供一些Hash算法的布隆过滤
        hutool-cache                    简单缓存实现
        hutool-core                        核心,包括Bean操作、日期、各种Util等
        hutool-cron                        定时任务模块,提供类Crontab表达式的定时任务
        hutool-crypto                    加密解密模块,提供对称、非对称和摘要算法封装
        hutool-db                        JDBC封装后的数据操作,基于ActiveRecord思想
        hutool-dfa                        基于DFA模型的多关键字查找
        hutool-extra                    扩展模块,对第三方封装(模板引擎、邮件、Servlet、二维码、Emoji、FTP、分词等)
        hutool-http                        基于HttpUrlConnection的Http客户端封装
        hutool-log                        自动识别日志实现的日志门面
        hutool-script                    脚本执行封装,例如Javascript
        hutool-setting                    功能更强大的Setting配置文件和Properties封装
        hutool-system                    系统参数调用封装(JVM信息等)
        hutool-json                        JSON实现
        hutool-captcha                    图片验证码实现
        hutool-poi                        针对POI中Excel和Word的封装
        hutool-socket                    基于Java的NIO和AIO的Socket封装
        
        说明:可以根据需求对每个模块单独引入,也可以通过引入hutool-all方式引入所有模块。
        
        
        
        
    3、maven的gav配置:
        <dependency>
            <groupId>cn.hutool</groupId>
            <artifactId>hutool-all</artifactId>
            <version>5.2.5</version>
        </dependency>
        
        
    
二、使用笔记:
    1、使用hutool提供的克隆接口,直接实现cn.hutool.core.clone.Cloneable接口或者是cn.hutool.core.clone.CloneSupport类,达到JDK的Object克隆。
       直接使用JDK的Clonable是浅拷贝,如果想深拷贝,直接使用ObjectUtil.cloneByStream(obj)工具类,但是对象必须都实现Serializable接口。
    
    
    
    
    2、转换工具类,使用Convert工具类,支持各种类型的转换,还包括unicode字符、全角半角、编码转换、金额等。
      如果需要自定义转换器,可以实现Converter接口,
      ConverterRegistry converterRegistry = ConverterRegistry.getInstance();
      //此处做为示例自定义String转换,因为Hutool中已经提供String转换,请尽量不要替换
      //替换可能引发关联转换异常(例如覆盖String转换会影响全局)
      converterRegistry.putCustom(String.class, CustomConverter.class);
      String result = converterRegistry.convert(String.class, a);
      Assert.assertEquals("Custom: 454553", result); 
    
    
    
    3、日期工具类。
        (1)DateTime类继承于java.util.Date类,为Date类扩展了众多简便方法,这些方法多是DateUtil静态方法的对象表现形式,
          使用DateTime对象可以完全替代JDK的Date对象的使用。
          
        (2)使用DateUtil.parse()工具类,会自动检测日期字符串的格式,不需要自己主动指定,对于一些特殊的格式,也可以自己主动指定。
        
        (3)DateTime对象默认是可变对象(调用offset、setField、setTime方法默认变更自身),但是这种可变性有时候会引起很多问题(例如多个地方共用DateTime对象)。
           我们可以调用setMutable(false)方法使其变为不可变对象。
           
        (4)Chi

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值