国产开源精品工具包HuTool

简介:Hutool是一个小而全的Java工具类库,通过静态方法封装,降低相关API的学习成本,提高工作效率,使Java拥有函数式语言般的优雅,让Java语言也可以“甜甜的”。Hutool中的工具方法来自于每个用户的精雕细琢,它涵盖了Java开发底层代码中的方方面面,它既是大型项目开发中解决小问题的利器,也是小型项目中的效率担当;Hutool是项目中“util”包友好的替代,它节省了开发人员对项目中公用类和公用工具方法的封装时间,使开发专注于业务,同时可以最大限度的避免封装不完善带来的bug。官方文档:https://hutool.cn/docs/#/详细用法官方已经讲得很详尽了,在此就不再赘述了。模块介绍hutool-aopJDK动态代理封装,提供非IOC下的切面支持hutool-bloomFilter布隆过滤,提供一些Hash算法的布隆过滤hutool-cache简单缓存实现hutool-core核心,包括Bean操作、日期、各种Util等hutool-cron定时任务模块,提供类Crontab表达式的定时任务hutool-crypto加密解密模块,提供对称、非对称和摘要算法封装hutool-dbJDBC封装后的数据操作,基于ActiveRecord思想hutool-dfa基于DFA模型的多关键字查找hutool-extra扩展模块,对第三方封装(模板引擎、邮件、Servlet、二维码、Emoji、FTP、分词等)hutool-http基于HttpUrlConnection的Http客户端封装hutool-log自动识别日志实现的日志门面hutool-script脚本执行封装,例如Javascripthutool-setting功能更强大的Setting配置文件和Properties封装hutool-system系统参数调用封装(JVM信息等)hutool-jsonJSON实现hutool-captcha图片验证码实现hutool-poi针对POI中Excel的封装hutool-socket基于Java的NIO和AIO的Socket封装

国产精品开源框架Nutz及相官工具类简介

Nutz官网: http://nutzam.com 简介: Nutz 是国产的精品开源框架,它全无依赖,只以1兆多的身材,就可以实现SSH全部功能的90%以上。内容主要涵盖了:Ioc、Aop、MVC、Dao、Json等WEB开发的方方面面。 因此它并非简简单单一个工具包,甚至可用它来做一个项目。相关工具类(其他内容请参见官网,此处仅选其中几工具类)Http 类//get方式请求Response resp = Http.get("http://www.baidu.com");    if (resp.isOK()) {        System.out.println(resp.getContent());    }//post方式Map<String, Object> params = new HashMap<String, Object>();params.put("name", "root");params.put("pwd", "123456");int timeout = 60 * 1000; // 单位毫秒String apiRet = Http.post("http://api.xxx.com/login", params, timeout);System.out.println(apiRet);使用代理定制http Header、Cookie文件上传设置请求超时时间… 更多内容可自行探索 org.nutz.http 包。Tasks 类Tasks.scheduleAtFixedRate(new Runnable(){    public void run()    {        System.out.println("task runing...");    }}, 10);Lang.quiteSleep(60 * 1000);在指定的延时之后开始以固定的频率来运行任务在指定的时间点开始以固定的频率运行任务两次任务间保持固定的时间间隔返回Future做更高级的任务控制返回定时任务线程池,可做更高级的应用 更多内容可自行探索 org.nutz.lang.Tasks 类Conf 加载PropertiesProxy property = new PropertiesProxy(“/conf/", “/db.properties”));String redisIp = property.get("redis.ip");Int redisPort = property.getInt("redis.port");SocketsSockets.localListenOneAndStop(9099, "reload", new SocketAction(){        @Override        public void run(SocketContext context) {            System.out.println("重新加载配置文件");            context.writeLine("success");        }    });现在你只需 telnet 172.0.0.1 9090 然后输入 reload,就能重新加载项目中的配置文件了。而且原生的,它支持客户端输入 “close|stop|bye|exit” 来结束服务端的本地监听。  上边只是演示了添加一个动作(SocketAction),其实可以向它放入多个SocketAction来实现各种命令操作。另高级的,服务器端还能支持接收json串,实现更多的参数传入。  更多内容可自行探索 org.nutz.lang.socket 包。NutMapNutMap map = new NutMap();map.put("name", "bushi");map.put("age", 63);map.put("sex", true);map.put("time", new Date());                  System.out.println(map.getString("name"));System.out.println(map.getInt("age"));System.out.println(map.getBoolean("sex"));System.out.println(map.getTime("time"));//另外addv亦可添加支持链式NutMap nutMap = new NutMap();nutMap.put("1",1);nutMap.put("2","2");nutMap.addv("3",3).addv2("4",4);System.out.println(nutMap);//输出 {1=1, 2=2, 3=3, 4=[4]}代码统计Nutz中还隐藏了一个代码统计工具。它可以对程序源码进行详细的统计,可以准确的分析出程序中代码行、注释行、空白行和导入行为多少等等。  项目快结束了,统计下项目中代码行数,可以满足下自己的虚荣心,同时也好向老板交差。  使用方法非常简单:File file = new File("E:/qinerg_github/nutz/src/");CodeStatisticsResult statisticsResult = Code.countingCode(file, "java", true, null);System.out.println("源码数:" + statisticsResult.getFileCount());System.out.println("总行数:" + statisticsResult.getTotalLines());System.out.println("代码行:" + statisticsResult.getNormalLines());System.out.println("注释行:" + statisticsResult.getCommentLines());System.out.println("导入行:" + statisticsResult.getImportLines());System.out.println("空白行:" + statisticsResult.getWhiteLines());参考来源: https://my.oschina.net/qinerg/blog/164278