java开发过程中常用的代码库、工具类库
网络编程
netty
Netty封装了JDK的NIO,Netty是一个异步事件驱动的网络应用框架,用于快速开发可维护的高性能服务器和客户端TIO
是基于aio(nio2)的网络编程框架,和netty属于同类,但t-io更注重一线开发工程师的感受,提供了大量和业务相关的API。基于t-io来开发IM、TCP私有协议、RPC、游戏服务器端、推送服务、实时监控、物联网、UDP、Socket将会变得空前的简单。MINA
通讯框架
JSON
fastjson
完全支持Java Bean、集合、Map、日期、Enum,支持范型,支持自省;无依赖,能够直接运行在Java SE 5.0以上版本;支持Android;开源 (Apache 2.0)Gson
性能强劲
XML
DOM4J
DOM4J是 dom4j.org 出品的一个开源 XML 解析包。DOM4J应用于 Java 平台,采用了 Java 集合框架并完全支持 DOM,SAX 和 JAXP
文档操作
POI
Apache POI提供API给Java程式对Microsoft Office格式档案读和写的功能。POI为“Poor Obfuscation Implementation”的首字母缩写,意为“简洁版的模糊实现”,包括Excel World PPT Visio等JXL
excel操作
MVC框架
STRUTS
MVC框架SPRING BOOT
MVC框架、简单易用Hibernate
持久化框架MyBatis
持久化框架JDBCTemplate
Spring持久化、jpa
Spring 框架
提供AOP、ASM、AspectJ整合、IOC、MVC、IOC扩展、JDBC、JMS、ORM、JPA、TRANSATION、MVC增强、Servlet、整合Struts、Security、Module表单验证、LDAP
安全
JWT
Auth2.0
代码生成
CGLIB
Code Generation Library 以用来动态继承Java类或者实现接口,很多知名的开源项目中用到了它
Commons(Apache Commons)
提供注解、字节码、Bean工具类、JavaBean转XML、CLI命令工具、集合封装、CSV文件处理、dbcp连接池、email、fileupload、httpclient、io、lang扩展、math数值扩展、net ftp各种网络协议支持、validate验证、vfs虚拟机、cxf 开源services框架
测试
- JUnit
流程引擎
JBPM
基于UML的状态图和活动图来定义流程,已加入JBOSS大家庭,市场前景看好Shark
XPDL:WFMC制定的描述业务流程控制流的XML格式规范,格式复杂,与具体语言无关,不灵活Osworkflow
XML:流程定义格式简单,使用灵活,基于有限状态机模型Activity
它是覆盖了业务流程管理、工作流、服务协作等领域的一个开源的、灵活的、易扩展的可执行流程语言框架
日志
Logback
spring boot默认日志框架log4j
WebService
CXF
比较简单Axis2
图片处理
thumbnailator
图片压缩、缩略图、旋转、裁切、加水印、转化图像格式、按照比例进行缩放
验证码
kaptcha
谷歌的kaptcha
模板引擎
Freemarker
一种基于模板和要改变的数据, 并用来生成输出文本(HTML网页、电子邮件、配置文件、源代码等)的通用工具
JAVA自带各种工具包
zip
压缩解压缩
通用工具包
Hutool
Java工具包类库,对文件、流、加密解密、转码、正则、线程、XML等JDK方法进行封装,组成各种Util工具类。Map转对象,对象转map等(支持复杂对象)。BeanUtil.mapToBean(map, User.class, true, CopyOptions.create());
其他
Pcap4j
Java解析pcap抓包文件,直接maven依赖加上,容易上手。jnetpcap、jpcap都已经很久没有更代码了,跨平台支持不好inotify-java
inotify使用异步的事件通知机制,实现对文件变化监控。IN_CLOSE、IN_MODIFY等事件。可以用jdk封装的poller、WatchService代替,也是封装了inotify,或者commons-io的FileAlterationListenerAdaptor(由文件监控类FileAlterationMonitor中的线程不停的扫描文件观察器FileAlterationObserver,如果有文件的变化,则根据相关的文件比较器,判断文件时新增,还是删除,还是更改)jsch
SSHJ
ssh客户端- 问题:
com.jcraft.jsch.JSchException: Packet corrupt
每次创建会话时,随机数(称为数据包)都与该会话相关联,disconnect的时候会删除,所以可以每次都使用新的session解决问题
- 问题:
ExpiringMap
带过期功能的Map,LoadingCache
线程安全的本地缓存