自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

全面的Java開源Apache Commons 工具類介紹

新聞 開發(fā)工具
Apache Commons 工具類大家都有用過,但是可能缺乏系統(tǒng)學(xué)習(xí),只用到了一小部分功能,無法發(fā)揮極限的價值,大白話說就是,一顆好白菜都讓豬給拱了!

前言

Apache Commons 工具類大家都有用過,但是可能缺乏系統(tǒng)學(xué)習(xí),只用到了一小部分功能,無法發(fā)揮極限的價值,大白話說就是,一顆好白菜都讓豬給拱了!

代碼過多,手機觀看效果不佳,建議收藏后在電腦上靜悄悄地看。因內(nèi)容健康,可大膽轉(zhuǎn)發(fā),即使未滿十八歲,在沒有家長陪同下也一樣可以觀看!

1、BeanUtils

提供了對于JavaBean進行各種操作, 比如對象,屬性復(fù)制等等。

  1. //1、 克隆對象  
  2. // 新創(chuàng)建一個普通Java Bean,用來作為被克隆的對象  
  3.  public class Person {  
  4.  private String name = "";  
  5.  private String email = "";  
  6.  private int age;  
  7.  //省略 set,get方法  
  8.  }  
  9. // 再創(chuàng)建一個Test類,其中在main方法中代碼如下: 
  10.  import java.lang.reflect.InvocationTargetException;  
  11.  import java.util.HashMap;  
  12.  import java.util.Map;  
  13.  import org.apache.commons.beanutils.BeanUtils;  
  14.  import org.apache.commons.beanutils.ConvertUtils;  
  15.  public class Test {  
  16.  /**  
  17.  * @param args  
  18.  */  
  19.  public static void main(String[] args) {  
  20.  Person person = new Person();  
  21.  person.setName("tom");  
  22.  person.setAge(21);  
  23.  try {  
  24.  //克隆  
  25.  Person person2 = (Person)BeanUtils.cloneBean(person);  
  26.  System.out.println(person2.getName()+">>"+person2.getAge());  
  27.  } catch (IllegalAccessException e) {  
  28.  e.printStackTrace();  
  29.  } catch (InstantiationException e) {  
  30.  e.printStackTrace();  
  31.  } catch (InvocationTargetException e) {  
  32.  e.printStackTrace();  
  33.  } catch (NoSuchMethodException e) {  
  34.  e.printStackTrace();  
  35.  }  
  36.  }  
  37.  }  
  38. // 原理也是通過Java的反射機制來做的。 
  39. // 2、 將一個Map對象轉(zhuǎn)化為一個Bean  
  40. // 這個Map對象的key必須與Bean的屬性相對應(yīng)。 
  41.  Map map = new HashMap();  
  42.  map.put("name","tom");  
  43.  map.put("email","tom@");  
  44.  map.put("age","21");  
  45.  //將map轉(zhuǎn)化為一個Person對象  
  46.  Person person = new Person();  
  47.  BeanUtils.populate(person,map);  
  48. // 通過上面的一行代碼,此時person的屬性就已經(jīng)具有了上面所賦的值了。 
  49. // 將一個Bean轉(zhuǎn)化為一個Map對象了,如下: 
  50.  Map map = BeanUtils.describe(person) 

2.Betwixt

XML與Java對象之間相互轉(zhuǎn)換。

  1. //1、 將JavaBean轉(zhuǎn)為XML內(nèi)容  
  2. // 新創(chuàng)建一個Person類  
  3. public class Person{  
  4.  private String name;  
  5.  private int age;  
  6.  /** Need to allow bean to be created via reflection */  
  7.  public PersonBean() {  
  8.  }  
  9.  public PersonBean(String name, int age) {  
  10.  this.name = name;  
  11.  this.age = age;  
  12.  }  
  13.  //省略set, get方法  
  14.  public String toString() {  
  15.  return "PersonBean[name='" + name + "',age='" + age + "']";  
  16.  }  
  17. }  
  18. //再創(chuàng)建一個WriteApp類: 
  19. import java.io.StringWriter;  
  20. import org.apache.commons.betwixt.io.BeanWriter;  
  21. public class WriteApp {  
  22. /**  
  23. * 創(chuàng)建一個例子Bean,并將它轉(zhuǎn)化為XML.  
  24. */  
  25. public static final void main(String [] args) throws Exception {  
  26.  // 先創(chuàng)建一個StringWriter,我們將把它寫入為一個字符串  
  27.  StringWriter outputWriter = new StringWriter();  
  28.  // Betwixt在這里僅僅是將Bean寫入為一個片斷  
  29.  // 所以如果要想完整的XML內(nèi)容,我們應(yīng)該寫入頭格式  
  30.  outputWriter.write(“<?xml version=’1.0′ encoding=’UTF-8′ ?> 
  31. ”);  
  32.  // 創(chuàng)建一個BeanWriter,其將寫入到我們預(yù)備的stream中  
  33.  BeanWriter beanWriter = new BeanWriter(outputWriter);  
  34.  // 配置betwixt  
  35.  // 更多詳情請參考java docs 或文檔  
  36.  beanWriter.getXMLIntrospector().getConfiguration().setAttributesForPrimitives(false);  
  37.  beanWriter.getBindingConfiguration().setMapIDs(false);  
  38.  beanWriter.enablePrettyPrint();  
  39.  // 如果這個地方不傳入XML的根節(jié)點名,Betwixt將自己猜測是什么  
  40.  // 但是讓我們將例子Bean名作為根節(jié)點吧  
  41.  beanWriter.write(“person”, new PersonBean(“John Smith”, 21));  
  42.  //輸出結(jié)果  
  43.  System.out.println(outputWriter.toString());  
  44.  // Betwixt寫的是片斷而不是一個文檔,所以不要自動的關(guān)閉掉writers或者streams,  
  45.  //但這里僅僅是一個例子,不會做更多事情,所以可以關(guān)掉  
  46.  outputWriter.close();  
  47.  }  
  48. }  
  49. //2、 將XML轉(zhuǎn)化為JavaBean  
  50. import java.io.StringReader;  
  51. import org.apache.commons.betwixt.io.BeanReader;  
  52. public class ReadApp {  
  53. public static final void main(String args[]) throws Exception{  
  54.  // 先創(chuàng)建一個XML,由于這里僅是作為例子,所以我們硬編碼了一段XML內(nèi)容  
  55.  StringReader xmlReader = new StringReader(  
  56.  "<?xml version=’1.0′ encoding=’UTF-8′ ?> <person><age>25</age><name>James Smith</name></person>");  
  57.  //創(chuàng)建BeanReader  
  58.  BeanReader beanReader = new BeanReader();  
  59.  //配置reader  
  60.  beanReader.getXMLIntrospector().getConfiguration().setAttributesForPrimitives(false);  
  61.  beanReader.getBindingConfiguration().setMapIDs(false);  
  62.  //注冊beans,以便betwixt知道XML將要被轉(zhuǎn)化為一個什么Bean  
  63.  beanReader.registerBeanClass("person", PersonBean.class);  
  64.  //現(xiàn)在我們對XML進行解析  
  65.  PersonBean person = (PersonBean) beanReader.parse(xmlReader);  
  66.  //輸出結(jié)果  
  67.  System.out.println(person);  
  68.  }  

為什么某些人會一直比你優(yōu)秀,是因為他本身就很優(yōu)秀還一直在持續(xù)努力變得更優(yōu)秀,而你是不是還在滿足于現(xiàn)狀內(nèi)心在竊喜! 關(guān)注我,私信回復(fù)我“資料”

獲取免費的Java架構(gòu)學(xué)習(xí)資料(里面有高可用、高并發(fā)、高性能及分布式、Jvm性能調(diào)優(yōu)、Spring源碼,MyBatis,Netty,Redis,Kafka,Mysql,Zookeeper,Tomcat,Docker,Dubbo,Nginx等多個知識點的架構(gòu)視頻學(xué)習(xí)資料以及電子書資料)合理利用自己每一分每一秒的時間來學(xué)習(xí)提升自己,不要再用"沒有時間“來掩飾自己思想上的懶惰!趁年輕,使勁拼,給未來的自己一個交代!

3.Codec

提供了一些公共的編解碼實現(xiàn),比如Base64, Hex, MD5,Phonetic and URLs等等

4.Collections

  • 對java.util的擴展封裝,處理數(shù)據(jù)還是挺靈活的。
  • org.apache.commons.collections – Commons Collections自定義的一組公用的接口和工具類
  • org.apache.commons.collections.bag – 實現(xiàn)Bag接口的一組類
  • org.apache.commons.collections.bidimap – 實現(xiàn)BidiMap系列接口的一組類
  • org.apache.commons.collections.buffer – 實現(xiàn)Buffer接口的一組類
  • org.apache.commons.collections.collection – 實現(xiàn)java.util.Collection接口的一組類
  • org.apache.commons.collections.comparators – 實現(xiàn)java.util.Comparator接口的一組類
  • org.apache.commons.collections.functors – Commons Collections自定義的一組功能類
  • org.apache.commons.collections.iterators – 實現(xiàn)java.util.Iterator接口的一組類
  • org.apache.commons.collections.keyvalue – 實現(xiàn)集合和鍵/值映射相關(guān)的一組類
  • org.apache.commons.collections.list – 實現(xiàn)java.util.List接口的一組類
  • org.apache.commons.collections.map – 實現(xiàn)Map系列接口的一組類
  • org.apache.commons.collections5.Compress.set – 實現(xiàn)Set系列接口的一組類

5.Compress

commons compress中的打包、壓縮類庫。

6.Configuration

用來幫助處理配置文件的,支持很多種存儲方式。

Properties filesXML documentsProperty list files (.plist)JNDIJDBC DatasourceSystem propertiesApplet parametersServlet parameters

7.DBCP

(Database Connection Pool)是一個依賴Jakarta commons-pool對象池機制的數(shù)據(jù)庫連接池,Tomcat的數(shù)據(jù)源使用的就是DBCP。

8.DbUtils

  • Apache組織提供的一個資源JDBC工具類庫,它是對JDBC的簡單封裝,對傳統(tǒng)操作數(shù)據(jù)庫的類進行二次封裝,可以把結(jié)果集轉(zhuǎn)化成List。,同時也不影響程序的性能。文章轉(zhuǎn)自肥朝大神
  • DbUtils類:啟動類
  • ResultSetHandler接口:轉(zhuǎn)換類型接口
  • MapListHandler類:實現(xiàn)類,把記錄轉(zhuǎn)化成List
  • BeanListHandler類:實現(xiàn)類,把記錄轉(zhuǎn)化成List,使記錄為JavaBean類型的對象
  • Qrery Runner類:執(zhí)行SQL語句的類

9.Email

提供的一個開源的API,是對javamail的封裝。

10.FileUpload

java web文件上傳功能。

11.HttpClient

基于HttpCore實 現(xiàn)的一個HTTP/1.1兼容的HTTP客戶端,它提供了一系列可重用的客戶端身份驗證、HTTP狀態(tài)保持、HTTP連接管理module。

12.http://IO

對http://java.io的擴展 操作文件非常方便。

13.Lang

主要是一些公共的工具集合,比如對字符、數(shù)組的操作等等。

14.Logging

提供的是一個Java 的日志接口,同時兼顧輕量級和不依賴于具體的日志實現(xiàn)工具。

  1. import org.apache.commons.logging.Log;  
  2. import org.apache.commons.logging.LogFactory;  
  3. public class CommonLogTest {  
  4.  private static Log log = LogFactory.getLog(CommonLogTest.class);  
  5.  //日志打印  
  6.  public static void main(String[] args) {  
  7.  log.error("ERROR");  
  8.  log.debug("DEBUG");  
  9.  log.warn("WARN");  
  10.  log.info("INFO");  
  11.  log.trace("TRACE");  
  12.  System.out.println(log.getClass());  
  13.  }  

15.Validator

通用驗證系統(tǒng),該組件提供了客戶端和服務(wù)器端的數(shù)據(jù)驗證框架。

1.驗證日期

  1. // 獲取日期驗證  
  2. DateValidator validator = DateValidator.getInstance();  
  3. // 驗證/轉(zhuǎn)換日期  
  4. Date fooDate = validator.validate(fooString, "dd/MM/yyyy");  
  5. if (fooDate == null) {  
  6.  // 錯誤 不是日期  
  7.  return;  

2.表達式驗證

  1. // 設(shè)置參數(shù)  
  2. boolean caseSensitive = false;  
  3. String regex1 = "^([A-Z]*)(?:\-)([A-Z]*)*$"  
  4. String regex2 = "^([A-Z]*)$";  
  5. String[] regexs = new String[] {regex1, regex1};  
  6. // 創(chuàng)建驗證  
  7. RegexValidator validator = new RegexValidator(regexs, caseSensitive);  
  8. // 驗證返回boolean  
  9. boolean valid = validator.isValid("abc-def");  
  10. // 驗證返回字符串  
  11. String result = validator.validate("abc-def");  
  12. // 驗證返回數(shù)組  
  13. String[] groups = validator.match("abc-def"); 

3.配置文件中使用驗證

  1. <form-validation>  
  2.  <global>  
  3.  <validator name="required"  
  4.  classname="org.apache.commons.validator.TestValidator"  
  5.  method="validateRequired"  
  6.  methodParams="java.lang.Object, org.apache.commons.validator.Field"/>  
  7.  </global>  
  8.  <formset>  
  9.  </formset>  
  10. </form-validation>  
  11. 添加姓名驗證.  
  12. <form-validation>  
  13.  <global>  
  14.  <validator name="required"  
  15.  classname="org.apache.commons.validator.TestValidator"  
  16.  method="validateRequired"  
  17.  methodParams="java.lang.Object, org.apache.commons.validator.Field"/>  
  18.  </global>  
  19.  <formset>  
  20.  <form name="nameForm">  
  21.  <field property="firstName" depends="required">  
  22.  <arg0 key="nameForm.firstname.displayname"/>  
  23.  </field>  
  24.  <field property="lastName" depends="required">  
  25.  <arg0 key="nameForm.lastname.displayname"/>  
  26.  </field>  
  27.  </form>  
  28.  </formset>  
  29. </form-validation> 

4.驗證類

  1. Excerpts from org.apache.commons.validator.RequiredNameTest  
  2. //加載驗證配置文件  
  3. InputStream in = this.getClass().getResourceAsStream("validator-name-required.xml");  
  4. ValidatorResources resources = new ValidatorResources(in);  
  5. //這個是自己創(chuàng)建的bean 我這里省略了  
  6. Name name = new Name();  
  7. Validator validator = new Validator(resources, "nameForm");  
  8. //設(shè)置參數(shù)  
  9. validator.setParameter(Validator.BEAN_PARAM, name);  
  10. Map results = null;  
  11. //驗證  
  12. results = validator.validate();  
  13. if (results.get("firstName") == null) {  
  14.  //驗證成功  
  15. else {  
  16.  //有錯誤 int errors = ((Integer)results.get("firstName")).intValue();  

 

責任編輯:張燕妮 來源: 頭條科技
相關(guān)推薦

2015-11-11 13:45:42

Apache工具集

2009-09-07 10:29:12

思科CCNA認證介紹思科認證CCNA

2010-04-23 16:08:24

Aix操作系統(tǒng)

2011-12-15 09:13:11

Digesterjavaxml

2011-12-14 09:46:39

JSPJava

2009-09-25 17:19:28

Hibernate持久

2009-05-25 09:00:45

Javascript免費工具Javascript框

2020-09-20 22:10:04

Google 開源工具

2009-12-25 16:54:53

光接入網(wǎng)技術(shù)

2012-12-06 11:31:40

虛擬化

2010-09-10 12:34:54

2024-06-05 08:17:37

C#算法數(shù)據(jù)科學(xué)

2009-12-17 13:59:11

Linux缺點

2009-09-10 11:24:16

NFS服務(wù)器

2009-08-18 10:24:03

Java開發(fā)工具

2020-06-27 09:01:53

Java包裝類編程語言

2009-09-25 09:46:03

Hibernate s

2009-07-09 14:22:44

2019-11-10 09:30:44

LinuxLinux權(quán)限

2009-07-10 13:36:32

Swing容器
點贊
收藏

51CTO技術(shù)棧公眾號