Java的经久不衰,很大程度上得益于Java的生态好。在日常开发中,我们也会经常使用到各种开源库和工具类,为了避免重复造轮子,本文将贴出工作及学习中会用到的部分开源库和工具类。Java的生态实在太大,这里只能列举一部分。如果你对此感兴趣,不妨去读读他们的源码。
HTML解析器jsoup
1.1 介绍
jsoup(GitHub地址、中文文档)是一款Java 的HTML解析器,可直接解析某个URL地址、HTML文本内容。它提供了一套非常省力的API,可通过DOM,CSS以及类似于jQuery的操作方法来取出和操作数据。
1.2 示例
Document document = Jsoup.connect("https://www.cnblogs.com/toutou/") .userAgent("Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.119 Safari/537.36") .get(); // System.out.println(document); Elements elements = document.select("div.box.item"); for(Element element : elements) { Elements eleUrl = element.select("div.box-aw a"); String strPrjUrl = eleUrl.attr("href"); setProjUrls.add(strPrjUrl); // System.out.println(strPrjUrl); Elements eleTitle = eleUrl.select(".title"); String strTitle = eleTitle.text(); // System.out.println(strTitle); Elements eleSummary = eleUrl.select(".summary"); St<mark>本文来源gaodaimacom搞#代%码@网-</mark>ring strSummary = eleSummary.text(); // System.out.println(strSummary); }
Java 8 Stream
2.1 介绍
Java 8 API添加了一个新的抽象称为流Stream,可以让你以一种声明的方式处理数据。Stream 使用一种类似用 SQL 语句从数据库查询数据的直观方式来提供一种对 Java 集合运算和表达的高阶抽象。Stream API可以极大提高Java程序员的生产力,让程序员写出高效率、干净、简洁的代码。这种风格将要处理的元素集合看作一种流, 流在管道中传输, 并且可以在管道的节点上进行处理, 比如筛选, 排序,聚合等。
2.2 示例
List<Integer> transactionsIds = widgets.stream() .filter(b -> b.getColor() == RED) .sorted((x,y) -> x.getWeight() - y.getWeight()) .mapToInt(Widget::getWeight) .sum();
Apache Commons
3.1 介绍
Apache Commons是一个非常强大、非常全面的工具包,包含了很多开源的工具。下面就罗列一下一些相对常用的工具。
3.2 分支
BeanUtils
Commons-BeanUtils 提供对 Java 反射和自省API的包装
Chain
Chain 提供实现组织复杂的处理流程的“责任链模式”.
CLI
CLI 提供针对命令行参数,选项,选项组,强制选项等的简单API.
Codec
Codec 包含一些通用的编码解码算法。包括一些语音编码器, Hex, Base64, 以及URL encoder.
Collections
Commons-Collections 提供一个类包来扩展和增加标准的 Java Collection框架
Configuration
Commons-Configuration 工具对各种各式的配置和参考文件提供读取帮助.
DBCP
Commons-DBCP 提供数据库连接池服务
DbUtils
DbUtils 是一个 JDBC helper 类库,完成数据库任务的简单的资源清除代码.
Discovery
Commons-Discovery 提供工具来定位资源 (包括类) ,通过使用各种模式来映射服务/引用名称和资源名称.