apache-commons东西多哦!

       刚刚在网上了解了一下BeanUtils和Digester,感觉比较方便,用起也安逸!希望以后有机会在多了解哈。。。

org.apache.commons.beanutils包包里的东东

1.BeanUtils.copyProperties(po,vo);
    这个是浅拷贝,共享属性的。只是对属性进行复制,所以要先new出对象。
   
2.BeanUtils.setProperties(vo,properties_name,properties_value);
    设置或修改属性值。
     
3.BeanUtils.populate(po,Map<name,value>);
    将一个map的值填充到一个javabean中。

走进org.apache.commons.digester

1.配置rules.xml文件绑定javabean

Code:
  1. <digester-rules>  
  2.     <pattern value="解析时的标志">  
  3.         <pattern value="同上">  
  4.             <object-create-rule classname="本标志绑定的类" />  
  5.             <set-next-rule methodname="创建绑定类到方法名" />  
  6.             <set-properties-rule /><!--设置类属性-->  
  7.         </pattern>  
  8.     </pattern>  
  9. </digester-rules> 

写了两个po简单测试了一下下,一个Male,一个Female,都继承至Human抽象类。比较简单,就不负代码,直接上测试类

BeanUtilsTest:

Code:
  1. package dao;  
  2.   
  3. import java.util.HashMap;  
  4. import java.util.Map;  
  5.   
  6. import org.apache.commons.beanutils.BeanUtils;  
  7. import org.junit.BeforeClass;  
  8. import org.junit.Test;  
  9.   
  10. import entity.Female;  
  11. import entity.Male;  
  12.   
  13. public class BeanUtilsTest {  
  14.   
  15.     // 世界上有两种人  
  16.     private static Male m;  
  17.     private static Female f;  
  18.     private static Map<String, String> nature;  
  19.   
  20.     @BeforeClass  
  21.     public static void beforeClass() {  
  22.         System.out.println("----------变性前------------");  
  23.         m = new Male();  
  24.         m.setId(1648);  
  25.         m.setName("Apache");  
  26.         nature = new HashMap<String, String>();  
  27.         nature.put("name""Apache");  
  28.         System.out.println(m);  
  29.     }  
  30.   
  31.     @Test  
  32.     public void testSimpleCopy() throws Exception {  
  33.         System.out.println("----------变性手术------------");  
  34.         f = new Female();  
  35.         BeanUtils.copyProperties(f, m);  
  36.         System.out.println(f);  
  37.     }  
  38.   
  39.     @Test  
  40.     public void testSetPop() throws Exception {  
  41.         System.out.println("----------改变属性值------------");  
  42.         BeanUtils.setProperty(f, "name""Jakarta");  
  43.         System.out.println(f);  
  44.     }  
  45.   
  46.     @Test  
  47.     public void testPopulate() throws Exception {  
  48.         System.out.println("----------X射线下的原型------------");  
  49.         Male re=new Male();  
  50.         BeanUtils.populate(re, nature);  
  51.         System.out.println(re);  
  52.     }  
  53.   
  54. }  

DigesterTest:

Code:
  1. package dao;  
  2.   
  3. import org.apache.commons.digester.Digester;  
  4. import org.apache.commons.digester.xmlrules.DigesterLoader;  
  5. import org.junit.Test;  
  6.   
  7. import entity.Company;  
  8.   
  9. public class DigesterTest {  
  10.   
  11.     @Test  
  12.     public void testDynamicParse() throws Exception {  
  13.         Company company = new Company();  
  14.         Digester digester = DigesterLoader.createDigester(DigesterTest.class  
  15.                 .getClassLoader().getResource("rules.xml"));  
  16.         digester.push(company);  
  17.         Object obj = digester.parse(Digester.class.getClassLoader()  
  18.                 .getResource("company.xml"));  
  19.         System.out.println(obj);  
  20.     }  
  21.   
  22. }  

结果是entity.Company@82c01f。

汗,不会载图!!!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值