在去年有一次面试过程中,突然被问到平常用过的jar包,想了半天就只答出来一个log4j,所以这里整理一下平常接触到的开源jar包并会保持更新。
- Log4j 是Apache的一个开放源代码项目,通过使用Log4j,我们可以控制日志信息输送的目的地是控制台、文件、GUI组件、甚至是套接口服务器、NT的事件记录器、UNIX Syslog守护进程等;并且通过定义每一条日志信息的级别,我们能够更加细致地控制日志的生成过程。
- SLF4J为各种loging APIs提供一个简单统一的接口,从而使得最终用户能够在部署的时候配置自己希望的Loging API实现。换句话说,其不是具体的日志解决方案,只是为各种各样的日志系统提供服务。 Logging API实现既可以选择直接实现SLF4J接的loging APIs如: NLOG4J、SimpleLogger;也可以通过SLF4J提供的API实现来开发相应的适配器如:Log4jLoggerAdapter、JDK14LoggerAdapter。
关于Log4j和SLF4J的比较可以参考这篇博文:为什么要使用SLF4J而不是Log4J Guava是Google出品的第三方工具库。当java.util提供的数据结构不能满足的时候,从这里你可以快速找到大量已经写好的数据结构了,这使得你不用花费心思在一些常用的数据结构上了。主要包括以下常用包:
com.google.common.annotations:普通注解类型。
com.google.common.base:基本工具类库和接口。
com.google.common.cache:缓存工具包,非常简单易用且功能强大的JVM内缓存。
com.google.common.collect:带泛型的集合接口扩展和实现,以及工具类。
com.google.common.eventbus:发布订阅风格的事件总线。
com.google.common.hash: 哈希工具包。
com.google.common.io:I/O工具包。
com.google.common.math:原始算术类型和超大数的运算工具包。
com.google.common.net:网络工具包。
com.google.common.primitives:八种原始类型和无符号类型的静态工具包。
com.google.common.reflect:反射工具包。
com.google.common.util.concurrent:多线程工具包。Apache Commons包含了很多开源的工具,用于解决平时编程经常会遇到的问题,减少重复劳动。主要包括以下常用包:
Beanutils:提供了对于JavaBean进行各种操作,克隆对象,属性等等。
Betwixt:XML与Java对象之间相互转换。
Codec:处理常用的编码方法的工具类包 例如DES、SHA1、MD5、Base64等。
Collections:java集合框架操作。
Compress:提供文件打包 压缩类库。
Configuration:用来帮助处理配置文件的,支持很多种存储方式。
DbUtils:提供对jdbc的操作封装来简化数据查询和记录读取操作。
Email:java发送邮件 对javamail的封装。
FileUpload:提供文件上传功能。
IO:io工具的封装。
Lang:Java基本对象方法的工具类包 如:StringUtils,ArrayUtils等等。
Validator:提供了客户端和服务器端的数据验证框架。mysql-connector-java是java连接mysql时,需要安装驱动。如果未安装,会出现找不到“com.mysql.jdbc.Driver”的错误。
CXF是一个开源的 Services 框架,CXF 帮助您利用 Frontend 编程 API 来构建和开发 Services ,像 JAX-WS 。这些 Services 可以支持多种协议,比如:SOAP、XML/HTTP、RESTful HTTP 或者 CORBA ,并且可以在多种传输协议上运行,比如:HTTP、JMS 或者 JBI,CXF 大大简化了 Services 的创建,同时它继承了XFire传统,一样可以天然地和 Spring 进行无缝集成。