Apache common包应用集合
一、Commons BeanUtils
http://jakarta.apache.org/commons/beanutils/index.html
說明:針對Bean的一個工具集。由于Bean往往是有一堆get和set組成,所以BeanUtils也是在此基礎(chǔ)上進行一些包裝。
使用示例:功能有很多,網(wǎng)站上有詳細介紹。一個比較常用的功能是Bean Copy,也就是copy bean的屬性。如果做分層架構(gòu)開發(fā)的話就會用到,比如從PO(Persistent Object)拷貝數(shù)據(jù)到VO(Value Object)。
傳統(tǒng)方法如下:
//得到TeacherFormTeacherForm teacherForm=(TeacherForm)form;//構(gòu)造Teacher對象Teacher teacher=new Teacher();//賦值 teacher.setName(teacherForm.getName()); teacher.setAge(teacherForm.getAge()); teacher.setGender(teacherForm.getGender()); teacher.setMajor(teacherForm.getMajor()); teacher.setDepartment(teacherForm.getDepartment());//持久化Teacher對象到數(shù)據(jù)庫 HibernateDAO= ; HibernateDAO.save(teacher);使用BeanUtils后,代碼就大大改觀了,如下所示:
//得到TeacherForm TeacherForm teacherForm=(TeacherForm)form; //構(gòu)造Teacher對象 Teacher teacher=new Teacher();//賦值 BeanUtils.copyProperties(teacher,teacherForm);//持久化Teacher對象到數(shù)據(jù)庫 HibernateDAO= ; HibernateDAO.save(teacher);二、Commons CLI
http://jakarta.apache.org/commons/cli/index.html
說明:這是一個處理命令的工具。比如main方法輸入的string[]需要解析。你可以預(yù)先定義好參數(shù)的規(guī)則,然后就可以調(diào)用CLI來解析。
使用示例:
// create Options object Options options = new Options(); // add t option, option is the command parameter, 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")) {// print the date and time }else {// print the date }// get c option value String countryCode = cmd.getOptionValue("c");if(countryCode == null) {// print default date }else {// print date for country specified by countryCode }三、Commons Codec
http://jakarta.apache.org/commons/codec/index.html
說明:這個工具是用來編碼和解碼的,包括Base64,URL,Soundx等等。用這個工具的人應(yīng)該很清楚這些,我就不多介紹了。
四、Commons Collections
http://jakarta.apache.org/commons/collections/
說明:你可以把這個工具看成是java.util的擴展。
使用示例:舉一個簡單的例子
OrderedMap map = new LinkedMap(); map.put("FIVE", "5"); map.put("SIX", "6"); map.put("SEVEN", "7"); map.firstKey(); // returns "FIVE" map.nextKey("FIVE"); // returns "SIX" map.nextKey("SIX"); // returns "SEVEN"五、Commons Configuration
http://jakarta.apache.org/commons/configuration/
說明:這個工具是用來幫助處理配置文件的,支持很多種存儲方式
使用示例:舉一個Properties的簡單例子
# usergui.properties, definining the GUI, colors.background = #FFFFFF colors.foreground = #000080 window.width = 500 window.height = 300PropertiesConfiguration config = new PropertiesConfiguration("usergui.properties"); config.setProperty("colors.background", "#000000); config.save();config.save("usergui.backup.properties);//save a copy Integer integer = config.getInteger("window.width");Commons DBCP
http://jakarta.apache.org/commons/dbcp/
說明:Database Connection pool, Tomcat就是用的這個,不用我多說了吧,要用的自己去網(wǎng)站上看說明。
六、Commons DbUtils
http://jakarta.apache.org/commons/dbutils/
說明:我以前在寫數(shù)據(jù)庫程序的時候,往往把數(shù)據(jù)庫操作單獨做一個包。DbUtils就是這樣一個工具,以后開發(fā)不用再重復(fù)這樣的工作了。值得一體的是,這個工具并不是現(xiàn)在流行的OR-Mapping工具(比如Hibernate),只是簡化數(shù)據(jù)庫操作,比如
QueryRunner run = new QueryRunner(dataSource);// Execute the query and get the results back from the handler Object[] result = (Object[]) run.query("SELECT * FROM Person WHERE name=?", "John Doe");七、Commons FileUpload
http://jakarta.apache.org/commons/fileupload/
說明:jsp的上傳文件功能怎么做呢?
使用示例:
// Create a factory for disk-based file items FileItemFactory factory = new DiskFileItemFactory(); // Create a new file upload handler ServletFileUpload upload = new ServletFileUpload(factory);// Parse the request List /* FileItem */ items = upload.parseRequest(request); // Process the uploaded items Iterator iter = items.iterator(); while (iter.hasNext()) {FileItem item = (FileItem) iter.next();if (item.isFormField()) {processFormField(item);} else {processUploadedFile(item);} }八、Commons HttpClient
http://jakarta.apache.org/commons/httpclient/
說明:這個工具可以方便通過編程的方式去訪問網(wǎng)站。
使用示例:最簡單的Get操作
GetMethod get = new GetMethod("http://jakarta.apache.org");// execute method and handle any error responses....InputStream in = get.getResponseBodyAsStream(); // Process the data from the input stream. get.releaseConnection();九、Commons IO
http://jakarta.apache.org/commons/io/
說明:可以看成是java.io的擴展,我覺得用起來非常方便。
使用示例:
1.讀取Stream
標準代碼:
InputStream in = new URL( "http://jakarta.apache.org" ).openStream(); try {InputStreamReader inR = new InputStreamReader( in );BufferedReader buf = new BufferedReader( inR );String line;while ( ( line = buf.readLine() ) != null ) {System.out.println( line );}} finally {in.close();}使用IOUtils
InputStream in = new URL( "http://jakarta.apache.org" ).openStream(); try {System.out.println( IOUtils.toString( in ) ); } finally {IOUtils.closeQuietly(in); }2.讀取文件
File file = new File("/commons/io/project.properties"); List lines = FileUtils.readLines(file, "UTF-8");3.察看剩余空間
long freeSpace = FileSystemUtils.freeSpace("C:/");十、Commons JXPath
http://jakarta.apache.org/commons/jxpath/
說明:Xpath你知道吧,那么JXpath就是基于Java對象的Xpath,也就是用Xpath對Java對象進行查詢。這個東西還是很有想像力的。
使用示例:
Address address = (Address)JXPathContext.newContext(vendor). getValue("locations[address/zipCode=‘90210‘]/address");上述代碼等同于
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 (zipCode.equals("90210")){address = location.getAddress();break;} }十一、Commons Lang
http://jakarta.apache.org/commons/lang/
說明:這個工具包可以看成是對java.lang的擴展。提供了諸如StringUtils, StringEscapeUtils, RandomStringUtils, Tokenizer, WordUtils等工具類。
十二、Commons Logging
http://jakarta.apache.org/commons/logging/
說明:你知道log4j嗎?
十三、Commons Math
http://jakarta.apache.org/commons/math/
說明:看名字你就應(yīng)該知道這個包是用來干嘛的了吧。這個包提供的功能有些和Commons Lang重復(fù)了,但是這個包更專注于做數(shù)學(xué)工具,功能更強大。
十四、Commons Net
http://jakarta.apache.org/commons/net/
說明:這個包還是很實用的,封裝了很多網(wǎng)絡(luò)協(xié)議。
使用示例:
TelnetClient telnet = new TelnetClient(); telnet.connect( "192.168.1.99", 23 ); InputStream in = telnet.getInputStream(); PrintStream out = new PrintStream( telnet.getOutputStream() ); ... telnet.close();十五、Commons Validator
http://jakarta.apache.org/commons/validator/
說明:用來幫助進行驗證的工具。比如驗證Email字符串,日期字符串等是否合法。
使用示例:
// Get the Date validator DateValidator validator = DateValidator.getInstance(); // Validate/Convert the date Date fooDate = validator.validate(fooString, "dd/MM/yyyy"); if (fooDate == null) {// error...not a valid datereturn; }十六、Commons virtual File System
http://jakarta.apache.org/commons/vfs/
說明:提供對各種資源的訪問接口。支持的資源類型包括
這個包的功能很強大,極大的簡化了程序?qū)Y源的訪問。
使用示例:
從jar中讀取文件
// Locate the Jar file FileSystemManager fsManager = VFS.getManager(); FileObject jarFile = fsManager.resolveFile( "jar:lib/aJarFile.jar" );// List the children of the Jar file FileObject[] children = jarFile.getChildren(); System.out.println( "Children of " + jarFile.getName().getURI() ); for ( int i = 0; i < children.length; i++ ){System.out.println( children[ i ].getName().getBaseName() ); }從smb讀取文件
StaticUserAuthenticator auth = new StaticUserAuthenticator("username", "password", null); FileSystemOptions opts = new FileSystemOptions(); DefaultFileSystemConfigBuilder.getInstance().setUserAuthenticator(opts, auth);總結(jié)
以上是生活随笔為你收集整理的Apache common包应用集合的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 理想汽车 CEO 李想:面对华为,80%
- 下一篇: 【eclipse】配置author和co