BenUtilsの紹介と使用

10037 ワード

BenUtilsの紹介と使用
  • BenUtilsの紹介と使用
  • 概要
  • コンダクタンス
  • 使用
  • カスタムデータタイプがBenUtilsツールを使用する場合に必要な条件
  • の一例
  • 概要
    BeanUtilsツールは、Apacheソフトウェア基金によって作成され、使用されています.主に解決された問題は、対象の属性データを対象にカプセル化することです.J 2 EE全体のプログラミング過程では、各種のプロファイルから該当データを読み取ることがよくあります.基本データタイプ(int、double、char、floatなど)だけでなく、カスタムデータタイプもあります.(データの種類を参照してください.)では、私たちが直面しなければならない問題の一つは文字列の種類を様々な具体的なデータの種類に変換する場合、どうすればいいですか?二つの方法があります.
  • は、まず必要なデータタイプを判断し、文字列タイプに対応する方法を呼び出して、私たちが欲しいタイプ
  • に変換する.
  • BenUtilsツールを使用する
  • 上に述べた二つの方法について、私達は第一の存在の問題を分析するのはあまりにも複雑で、毎回大量のタイプ転換を行います.Apacheソフトウェア財団は第二の方法を提供してくれました.その提供したBeanUtilsツールを使って、具体的にはその中の二つの方法を知るだけで、タイプの転換ができます.
    コンダクタンス
    明らかに他の人が開発したツールを使用するには、jarパッケージをプログラムに導入しなければなりませんが、BenUtilsパッケージは他のパッケージに依存しています.以下にjarパッケージの名前を具体的に表示します.バージョン番号は必ずしも私と同じではありません.
  • commons-beanutils-1.92.jarダウンロードアドレス:http://commons.apache.org/proper/commons-beanutils/download_beanutils.cgi
  • commons-loging.jarダウンロードアドレス:https://commons.apache.org/proper/commons-logging/download_logging.cgi
  • 最新のバージョンをダウンロードしてください.Java EEのプロジェクト開発に従事している限り、Jarパッケージの導入はほぼ毎日違っています.具体的なコードを作成する前に、sourceをプログラムに導入してください.正しいリロード関数を生成するには、Attach Sourceを使用して、jarパッケージ(外部ファイルを使用して導入し、外部フォルダを使用しないで導入)を導入すればいいです.
    使用
    Benutilsツールは、使用時にはほとんど以下のいくつかの方法にのみ使用され、その一つの方法は通常匿名の内部クラスを使用する.
  • BenUtils.set Property(bean,name,value)、beanは設定する対象を指し、nameは設定する属性(属性名に書く)を指し、value(プロファイルから読み取った文字列値)
  • BenUtilsです.copyProptiesは上の方法と全く同じです.どれを使ってもいいです.
  • .
  • CovertUtils.register(Coverter converter.)は、Stringデータを参照データタイプ(カスタムデータタイプに変換する必要がある場合)に、この方法を用いて変換を行う必要がある.
  • BenUtils.poputlateでは、Mapのkeyはターゲットオブジェクトの属性名と同じでなければなりません.コピーはできません.
  • BenUtils.co pyProperties(newObject、oldObject)は、対象のコピー
  • を実現する.
    カスタムデータタイプは、BenUtilsツールを使用する場合に必要な条件です.
    カスタムデータタイプはBenUtilsツールを使用する場合、自身はgetterとsetter方法を備えていなければならない.BeanUtilsツール自体も内省の実現方法であるため、下地のgetterとsetter方法によって変換される.
    一例
    javabeanの対象にしたいです.
    package com.jpzhutech.beanutils;
    
    import java.util.Date;
    
    import javax.xml.crypto.Data;
    
    public class Emp {
        private int id ;
        private String name;
        public Emp(int id, String name, double salary, Date date) {
            super();
            this.id = id;
            this.name = name;
            this.salary = salary;
            this.date = date;
        }
    
        private double salary;
        private Date date;
    
    
        public Date getDate() {
            return date;
        }
        public void setDate(Date date) {
            this.date = date;
        }
        public Emp() {
    
        }
    
        public int getId() {
            return id;
        }
        public void setId(int id) {
            this.id = id;
        }
        public String getName() {
            return name;
        }
        public void setName(String name) {
            this.name = name;
        }
        public double getSalary() {
            return salary;
        }
        public void setSalary(double salary) {
            this.salary = salary;
        }
    
    
        @Override
        public String toString() {
            // TODO Auto-generated method stub
            return "  :"+this.id+"   :"+this.name+"   :"+this.salary+"   :"+date;
        }
    
    }
    
    BenUtilsコンポーネントを使って変換します.
    /**
     * BeanUtils     
     *   :BeanUtils                 
     * BeanUtils   :
     * BeanUtils        ,           ,  BeanUtils               ,  
     * BeanUtils               getter setter  
     * 
     *                   ,                       
     * */
    
    package com.jpzhutech.beanutils;
    
    import java.lang.reflect.InvocationTargetException;
    import java.text.ParseException;
    import java.text.SimpleDateFormat;
    import java.util.Date;
    
    import javax.xml.crypto.Data;
    
    import org.apache.commons.beanutils.BeanUtils;
    import org.apache.commons.beanutils.ConvertUtils;
    import org.apache.commons.beanutils.Converter;
    import org.apache.commons.beanutils.locale.converters.DateLocaleConverter;
    
    public class TestBeanUtils {
        public static void main(String[] args) throws IllegalAccessException, InvocationTargetException {
            //                  ,                       
            // J2EE    ,                                
            //         ,         int ,       String,                
            //          ,              ?      ,    Apache        BeanUtils  
            //             ,     BeanUtils setProperties  ,        ,           
            //           
    
            /*ConvertUtils.register(new Converter() {
    
    
                //          
                @Override
                public Object convert(Class  type, Object value) { //type:            value:      
                    //  :         
    
                    if(type != Date.class)  return null;
    
                    if (value == null || "".equals(value.toString().trim())) {
                        return null;
                    }
                    SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy MM dd ");
                    Date date = null;
                    try {
                         date = dateFormat.parse((String)value);
                    } catch (ParseException e) {
                        throw new RuntimeException(e);
                    }
                    return date;
                }
            }, Date.class);  //Date.class           ,Date          ,                ,       BeanUtils
            */
    
            //          
            ConvertUtils.register(new DateLocaleConverter(), Date.class);   //   ,      
    
            String id ="110";  //       String                   ,              properties     
            String name = "   ";
            String salary = "1000";
    //        String birthday = "2015 01 30 "; //                        ,            
            String birthday = "2015-01-30";  //                           ,
    
    
            Emp p = new Emp();  //       ,           ,  BeanUtils             ,   Emp          getter setter  
                                 //  BeanUtils            ,       ,         getter setter  
    
            BeanUtils.setProperty(p, "id", id);  //  p          
    
            BeanUtils.setProperty(p, "name", name);   //                
    
            BeanUtils.setProperty(p, "salary", salary); //                
    
            BeanUtils.setProperty(p, "date", birthday);
    
            System.out.println(p);
        }
    }