前言
写这个,主要把自己常用的一些依赖做一个整理。其次,推荐大家使用一些公共的工具包,这样避免了重复造轮子的同时也避免了一些bug的出现,节约了很多时间。达到事倍功半的效用
一.依赖哪里找 ?
- mvn 仓库。这个地位和github差不多了。github 是一个代码仓库,mvnrepository是一个依赖仓库。 mvn仓库 传送门
- github 。我们可以时常去这个交友平台上看看,搜搜有没有人家写的很好的依赖。我们会用到的,另外 mvn里面很多依赖源码都在github上面,我们可以没事研究研究源码。github传送门
- 百度里面搜你想要的依赖, 很多博客都会跳出来告诉你你需要啥样的依赖 。
- 微信公众号里面有些大牛会告诉你啥啥依赖好用。
二.常用依赖
- 我常常会用这个依赖里面的StringUtils. StringEscapeUtils
//版本可以自己去仓库找。不一定用这个版本
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<version>3.10</version>
</dependency>
- 关于io的包。
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-io</artifactId>
<version>1.3.2</version>
</dependency>
apache这俩个依赖堪称俩大神技,关于apache的依赖我只会介绍这俩个,当然apache还有很多优秀的依赖,但这俩个应该是最常用的了吧。我基本每天都会用。
1.你基本不需要手写io了,有了这个依赖,手写一个io读取本地文件或者写入本地文件只需要五秒钟,手写的还容易出现bug,得不偿失。我以前就喜欢手写io,直到有一天我的膝盖中了一箭,说来话长了… …
2. 对字符串的处理 很方便了.StringUtils 和 StringEscapeUtils(处理转义)
- Jsoup 处理html ,获取html 节点很方便,connect()方法可以获取网络资源,可以用来做爬虫。
<dependency>
<groupId>org.jsoup</groupId>
<artifactId>jsoup</artifactId>
<version>1.13.1</version>
</dependency>
- 很多公司建议程序员使用Google Guava来编程。可以参考一下别人写的 。为什么建议使用guava编程,其实我也没怎么用。
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
<version>28.0-jre</version>
</dependency>
- 关于时间组件
如果你是简单的时间处理。jdk1.8里面的 LocalDateTime就可以处理。复杂的时间处理可以使用这个 依赖。
<dependency>
<groupId>joda-time</groupId>
<artifactId>joda-time</artifactId>
<version>${joda-time.version}</version>
</dependency>
6.关于爬虫的依赖。
- Crawl_WebMagic .可以很方便的爬虫了,还可以 集成Selenium 驱动浏览器。不过我觉得有时候满足不了我的爬虫需求。可能是我没太读懂源码不知道怎么修改源码以满足我的业务把。
<dependency>
<groupId>us.codecraft</groupId>
<artifactId>webmagic-core</artifactId>
<version>0.7.3</version>
</dependency>
- 我感觉 httpclientutil 这个爬虫依赖挺好的。
</dependency>
<groupId>com.arronlong</groupId>
<artifactId>httpclientutil</artifactId>
<version>1.0.4</version>
</dependency>
7.对excel的处理,poi 如果excel很大,很容易造成内存溢出,可能有人也遇到过。
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>easyexcel</artifactId>
<version>2.0.4</version>
</dependency>
8.对json的处理
这个我用的 fastjson比较多。另外还有其他的我也不常用
<dependency>
<groupId>cn.miludeer</groupId>
<artifactId>jsoncode</artifactId>
<version>1.2.4</version>
</dependency> //可以用jsonpath的方式获取value,这个 fastjson高版本也是可以的
dependency>
<groupId>com.jayway.jsonpath</groupId>
<artifactId>json-path</artifactId>
<version>2.2.0</version>
</dependency> //jsonpath的方式取value。
另外还有 jackson 我也没用过,感觉 fastjson 已经满足了我所有需求,所以也没有深究了
- hutools 依赖。 你可以只依赖你需要的部分,具体可以看 hutool官网
平时大部分的操作都会包含在里面,我觉得处理 csv挺好,我就知道一个处理csv的依赖,就是这个里面的…
<dependency>
<groupId>cn.hutool</groupId>
<artifactId>hutool-all</artifactId>
<version>5.3.1</version>
</dependency>
- 关于分布式的依赖。
关于分布式多任务调度。感觉quartz分布式并不方便,另外Elastic-job搭建和后期维护可能也不是那么太方便。xxl-job感觉还可以。 这里有个 xxl-job 入门教程可以扫一下
<dependency>
<groupId>com.xuxueli</groupId>
<artifactId>xxl-job-core</artifactId>
<version>2.0.1</version>
</dependency>