版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、(轉)Apache Commons工具集簡介Apache Commons包含了很多開源的工具,用于解決平時編程經常會遇到的問題,減少重復勞動。我選了一些比較常用的項目做簡單介紹。文中用了很多網上現成的東西,我只是做了一個匯總整理。一、Commons BeanUtils/commons/beanutils/index.html說明:針對Bean的一個工具集。由于Bean往往是有一堆get和set組成,所以BeanUtils也是在此基礎上進行一些包裝。使用示例:功能有很多,網站上有詳細介紹。一個比較常用的功能是Bean Copy,也就是copy be
2、an的屬性。如果做分層架構開發(fā)的話就會用到,比如從PO(Persistent Object)拷貝數據到VO(Value Object)。傳統(tǒng)方法如下:/得到TeacherFormTeacherForm teacherForm=(TeacherForm)form;/構造Teacher對象Teacher teacher=new Teacher();/賦值teacher.setName(teacherForm.getName();teacher.setAge(teacherForm.getAge();teacher.setGender(teacherForm.getGender();teacher.
3、setMajor(teacherForm.getMajor();teacher.setDepartment(teacherForm.getDepartment();/持久化Teacher對象到數據庫HibernateDAO= ;HibernateDAO.save(teacher);使用BeanUtils后,代碼就大大改觀了,如下所示:/得到TeacherFormTeacherForm teacherForm=(TeacherForm)form;/構造Teacher對象Teacher teacher=new Teacher();/賦值BeanUtils.copyProperties(teache
4、r,teacherForm);/持久化Teacher對象到數據庫HibernateDAO= ;HibernateDAO.save(teacher);二、Commons CLI/commons/cli/index.html說明:這是一個處理命令的工具。比如main方法輸入的string需要解析。你可以預先定義好參數的規(guī)則,然后就可以調用CLI來解析。使用示例:/ create Options objectOptions options = new Options();/ add t option, option is the command par
5、ameter, false indicates that/ this parameter is not required.options.addOption(“t”, false, “display current time”);options.addOption("c", true, "country code");CommandLineParser parser = new PosixParser();CommandLine cmd = parser.parse( options, args);if(cmd.hasOption("t&quo
6、t;) / print the date and timeelse / print the date/ get c option valueString countryCode = cmd.getOptionValue("c");if(countryCode = null) / print default dateelse / print date for country specified by countryCode三、Co
7、mmons Codec/commons/codec/index.html說明:這個工具是用來編碼和解碼的,包括Base64,URL,Soundx等等。用這個工具的人應該很清楚這些,我就不多介紹了。四、Commons Collections/commons/collections/說明:你可以把這個工具看成是java.util的擴展。使用示例:舉一個簡單的例子OrderedMap map = new LinkedMap();map.put("FIVE", "5"
8、);map.put("SIX", "6");map.put("SEVEN", "7");map.firstKey(); / returns "FIVE"map.nextKey("FIVE"); / returns "SIX"map.nextKey("SIX"); / returns "SEVEN"五、Commons Configuration/commons/confi
9、guration/說明:這個工具是用來幫助處理配置文件的,支持很多種存儲方式1. Properties files2. XML documents3. Property list files (.plist)4. JNDI5. JDBC Datasource6. System properties7. Applet parameters8. Servlet parameters使用示例:舉一個Properties的簡單例子# perties, definining the GUI,colors.background = #FFFFFFcolors.foreground =
10、 #000080window.width = 500window.height = 300 PropertiesConfiguration config = new PropertiesConfiguration("perties");config.setProperty("colors.background", "#000000);config.save();config.save("perties);/save a copyInteger integer = co
11、nfig.getInteger("window.width");Commons DBCP/commons/dbcp/說明:Database Connection pool, Tomcat就是用的這個,不用我多說了吧,要用的自己去網站上看說明。六、Commons DbUtils/commons/dbutils/說明:我以前在寫數據庫程序的時候,往往把數據庫操作單獨做一個包。DbUtils就是這樣一個工具,以后開發(fā)不用再重復這樣的工作了。值得一體的是,這個工具并不是現在流行的OR-M
12、apping工具(比如Hibernate),只是簡化數據庫操作,比如QueryRunner run = new QueryRunner(dataSource);/ Execute the query and get the results back from the handlerObject result = (Object) run.query("SELECT * FROM Person WHERE name=?", "John Doe");七、Commons FileUpload/commons/fi
13、leupload/說明:jsp的上傳文件功能怎么做呢?使用示例:/ Create a factory for disk-based file itemsFileItemFactory factory = new DiskFileItemFactory();/ Create a new file upload handlerServletFileUpload upload = new ServletFileUpload(factory); / Parse the requestList /* FileItem */ items = upload.parseRequest(request
14、);/ Process the uploaded itemsIterator iter = items.iterator();while (iter.hasNext() FileItem item = (FileItem) iter.next(); if (item.isFormField() processFormField(item);
15、60; else processUploadedFile(item); 八、Commons HttpClient/commons/httpclient/說明:這個工具可以方便通過編程的方式去訪問網站。使用示例:最簡單的Get操作GetMethod get = new GetMethod("");/ execute method
16、and handle any error responses.InputStream in = get.getResponseBodyAsStream();/ Process the data from the input stream.get.releaseConnection();九、Commons IO/commons/io/說明:可以看成是java.io的擴展,我覺得用起來非常方便。使用示例:1讀取Stream標準代碼:InputStream in = new URL( "&quo
17、t; ).openStream();try InputStreamReader inR = new InputStreamReader( in ); BufferedReader buf = new BufferedReader( inR ); String line; whil
18、e ( ( line = buf.readLine() ) != null ) System.out.println( line ); finally in.close(); 使用IOUtilsInputStream in = new URL( "http:/jakarta.apache.o
19、rg" ).openStream();try System.out.println( IOUtils.toString( in ) ); finally IOUtils.closeQuietly(in);2讀取文件File file = new File("/commons/io/perties");List lines = FileUtils.readLines(file, "UTF-8");3察看剩余空間long freeSpace
20、= FileSystemUtils.freeSpace("C:/");十、Commons JXPath/commons/jxpath/說明:Xpath你知道吧,那么JXpath就是基于Java對象的Xpath,也就是用Xpath對Java對象進行查詢。這個東西還是很有想像力的。使用示例:Address address = (Address)JXPathContext.newContext(vendor).getValue("locationsaddress/zipCode='90210'/addres
21、s");上述代碼等同于Address address = null;Collection locations = vendor.getLocations();Iterator it = locations.iterator();while (it.hasNext() Location location = (Location)it.next(); String zipCode = location.getAddress().getZipCode(); if
22、(zipCode.equals("90210") address = location.getAddress(); break; 十一、Commons Lang/commons/lang/說明:這個工具包可以看成是對java.lang的擴展。提供了諸如StringUtils, StringEscapeUtil
23、s, RandomStringUtils, Tokenizer, WordUtils等工具類。十二、Commons Logging/commons/logging/說明:你知道Log4j嗎?十三、Commons Math/commons/math/說明:看名字你就應該知道這個包是用來干嘛的了吧。這個包提供的功能有些和Commons Lang重復了,但是這個包更專注于做數學工具,功能更強大。十四、Commons Net/commons/net/說明:這個
24、包還是很實用的,封裝了很多網絡協議。1. FTP2. NNTP3. SMTP4. POP35. Telnet6. TFTP7. Finger8. Whois9. rexec/rcmd/rlogin10. Time (rdate) and Daytime11. Echo12. Discard13. NTP/SNTP使用示例:TelnetClient telnet = new TelnetClient();telnet.connect( "9", 23 );InputStream in = telnet.getInputStream();PrintStre
25、am out = new PrintStream( telnet.getOutputStream() );.telnet.close();十五、Commons Validator/commons/validator/說明:用來幫助進行驗證的工具。比如驗證Email字符串,日期字符串等是否合法。使用示例:/ Get the Date validatorDateValidator validator = DateValidator.getInstance();/ Validate/Convert the dateDate fooDate = vali
26、dator.validate(fooString, "dd/MM/yyyy");if (fooDate = null) / error.not a valid date return;十六、Commons Virtual File System/commons/vfs/說明:提供對各種資源的訪問接口。支持的資源類型包括1. CIFS2. FTP3. Local Files4. HTTP and HTTPS5. SFTP6. Temporary Files7. WebDAV8. Z
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 玉溪師范學院《外國民族音樂》2023-2024學年第一學期期末試卷
- 玉溪師范學院《思想政治學科教學論》2021-2022學年第一學期期末試卷
- 玉溪師范學院《色彩人像》2022-2023學年第一學期期末試卷
- 玉溪師范學院《空間構成基礎》2022-2023學年第一學期期末試卷
- 動力測試儀器賬務處理實例-記賬實操
- 五年級下冊音樂課件下載
- 廣州版五年級英語下冊教案
- 2024年航空制造和材料專用設備項目評價分析報告
- 2024屆河北省張家口市尚義一中高三一模數學試題試卷
- 測繪及勘察合同
- 保健按摩師(高級)技能理論考試題庫(含答案)
- 大學生職業(yè)發(fā)展與就業(yè)指導22-23-2學習通超星期末考試答案章節(jié)答案2024年
- 2024冶金等工業(yè)企業(yè)較大以上安全風險目錄
- 公民科學素質大賽參考試題庫600題(含答案)
- 期中模擬檢測(1-4單元)(試題)(含答案)-2024-2025學年四年級上冊數學北師大版
- 餐飲服務課件 學習任務3 西餐宴會服務
- 初級會計實務題庫(613道)
- 初中七年級主題班會:如何管理好自己的時間(課件)
- 2024-2030年全球及中國岸電行業(yè)發(fā)展現狀與未來前景預測報告
- GB 5920-2024汽車和掛車光信號裝置及系統(tǒng)
- 高中地理人教版(2019)必修第一冊 全冊教案
評論
0/150
提交評論