打算写一序列文章介绍 apache 的 Jakarta Project 的 Commons tools 里面的各个子项目。有点绕口,对不对?呵呵。Apache 的 Jakarta Project 里面有很多子项目。其中的 Commons 着眼于提供各种很同样的函数/类,这样大家可以在平时自己的项目中用。这些 tools 因为非常 common, 以至于无论你用哪种 framework ,你可以用到其中的一部分,来节省自己的编码量,并且其代码质量也是非常不错的。Commons tools 一部分出发点在于解决 JDK 中的各种不足:1. Exception 不好用,不得不写很多 try catch, 通过使用 C/C++ 常用的以返回值判断,可以少写很多代码。这方面以 jdbc interface 最为臭名昭著。2. 弥补 JDK 类库的不完善地方。比如 String , Collection Framework, 正则表达式等等。打算写文章介绍其中几个我认为比较通用的东西:Codec 包含 Hex, Base64, URL 的编码和反解码。Commons-Collections 增强 jdk 的 Collection Framework 功能。Commons-Configuration 读写配置参数。大多数程序都有运行参数,这个工具可以读些各种参数格式:数据库,xml ,Properties 文件,系统变量,等等。强吧?Commons-DBCP 数据库连接池,呵呵,现在连接池很多服务器都自带。DbUtils 可以介绍写 JDBC 程序的 try catch, 减少代码量。暴强!一个我想写一直没有时间写的东西。Email 发电子邮件。JDK 标准库对于发电子邮件支持不强,很让人看不懂。FileUpload 文件上传。J2EE 标准库对于文件上传支持不强,也让人看不懂。IO 虽然 jdk 号称 IO 重写了,并且还用了 nio(new IO) 的 package 名,但是还是不够好。这个可以看作是增强版了。Commons-Lang 好东西。 lang 包是 java 最基本的包,默认自动 import , 功能还是不够强,补补!Commons-Logging 好东西。大多数 EJB server 和 tomcat 都用到它。开源的 java project 也大部分用它。log 的抽象层。Java 中的 log 以前有很多种,如果你选了一种开发程序,以后想换另一种,比较麻烦。通过这个工具抽象一把,就很容易换了。不过最近 log4j 一支独大,似乎不会有人换其他的 log, 让过搞不懂。
Math 呵呵。Java 中的 Math 包只能勉强够用,如果稍微偏们一点的数学函数,都要自己写了。用它吧,节省时间。Net 增强 Java 网络功能。Java 的网络类库比起专业一点的 C++ 网络类库,差别还是很大。这里还是增强一点为好。Commons-Pool 普通的对象池。不是 EJB 的对象池。池这个东西,很难写好。弄不好特耗内存,速度反而慢(比如 EJB)。
Validator 这是好东西。不管是写 web 应用程序还是普通 java 应用程序,只要有用户输入界面,都用得上。比自己写省事阿。Commons project 下面还有 Sandbox,包含Cache ,Clazz ,Compress, Convert ,I18n,Id ,Mapper, SQL ,ThreadPool 等等,很多都用得上。哎,好东西真多,怎么介绍得完呢?慢慢来,一个一篇文章,慢慢来。希望大家支持。
Math 呵呵。Java 中的 Math 包只能勉强够用,如果稍微偏们一点的数学函数,都要自己写了。用它吧,节省时间。Net 增强 Java 网络功能。Java 的网络类库比起专业一点的 C++ 网络类库,差别还是很大。这里还是增强一点为好。Commons-Pool 普通的对象池。不是 EJB 的对象池。池这个东西,很难写好。弄不好特耗内存,速度反而慢(比如 EJB)。
Validator 这是好东西。不管是写 web 应用程序还是普通 java 应用程序,只要有用户输入界面,都用得上。比自己写省事阿。Commons project 下面还有 Sandbox,包含Cache ,Clazz ,Compress, Convert ,I18n,Id ,Mapper, SQL ,ThreadPool 等等,很多都用得上。哎,好东西真多,怎么介绍得完呢?慢慢来,一个一篇文章,慢慢来。希望大家支持。
1.可以介绍写 JDBC 程序的 try catch ==> 可以减少写...
2.稍微偏们一点的数学函数 ==> 稍微偏门...
3. ...网络类库,差别还是很大... ==> ...网络类库,差距...
年纪大了,夜深了,头昏了。