JavaBean規範

JavaBean-平常筆記java


 

什麼是JavaBean?

  簡單來講,JavaBean是一種符合Java語法的可重用的組件(類)。
工具

  Web應用程序中使用的JavaBean通常要知足以下要求:this

  • 類必需要使用public修飾。
  • 必需要有一個訪問權限爲public的無參構造器。
  • 屬性的訪問權限爲private。
  • 屬性類型必須爲String或者基本類型。
  • 屬性名和類型由獲取方法(getter)和設置方法(setter)推導而出。
  • 必須按命名約定來命名訪問權限爲public的獲取方法和設置方法。
  • 設置方法的參數類型和獲取方法的返回類型必須相同。

 

JavaBean 

  1)JavaBean成員有:方法(Method)、事件(Event)、屬性(property)。spa

    這裏的屬性是property而不是attribute3d

1)attribute:表示狀態,常認爲字段(Field)是屬性attribute。code

2)property:也表示狀態,可是不是字段,是由類中屬性的操做方法(getter/setter)來決定屬性名稱。orm

 

    設置屬性值:writableMethod:setter方法對象

    獲取屬性值:readableMethod:getter方法blog

    ex: setName/getName-->屬性:name事件

          setAge/getAge-->屬性:age

    若是數據類型爲boolean,則爲is方法。

 

  2)內省機制(Introspector):操做(獲取/設置)JavaBean中的方法/屬性/事件。

    使用static BeanInfo getBeanInfo(Class<?> beanClass)來獲取指定字節碼對象的JavaBean信息對象。

    例如現有Person類,含屬性(name,age)以及相應的getter和setter方法。

    則可使用Beaninfo bi = Introspector.getBeanInfo(Person.class);獲取到Person中的全部屬性。

public class Person {
    private String name;
    private Integer age;
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public Integer getAge() {
        return age;
    }
    public void setAge(Integer age) {
        this.age = age;
    }    
}

    經常使用方法:

      1.PropertyDescriptor[ ] getPropertyDescriptors();獲取JavaBean中的全部屬性描述符。

public class IntrospectorDemo {
    public static void main(String[] args) throws IntrospectionException {
        BeanInfo beanInfo = Introspector.getBeanInfo(Person.class);
        PropertyDescriptor[] pds = beanInfo.getPropertyDescriptors();
        for (PropertyDescriptor pd : pds) {
            //獲得每個屬性的描述器
            System.out.println("屬性名稱:"+pd.getName());
            System.out.println("屬性類型:"+pd.getPropertyType());
            System.out.println("set方法"+pd.getWriteMethod());
            System.out.println("get方法"+pd.getReadMethod());
        }
    }
}

    輸出結果:

    

 

   3)BeanUtils的使用

    開發中,經常使用Apache common中的BeanUtils工具來操做JavaBean。

    能夠經過內省技術進行數據的封裝,可是每一次寫內省程序是一件很麻煩的事情,而且內省匹配也會有問題(例如一側是String,一側是int,還須要進行數據轉化),

    所以,內省(基於反射,方便操做javabean的API)封裝form數據到javabean的代碼,通常不本身編寫,使用已經編寫好的工具開發包BeanUtils開發包。

    使用該工具前,須要提早去導入相應的jar包。

    下載BeanUtils的jar :commons-beanutils 、commons-logging,須要同時下載這兩個jar包,前者依賴後者。

    這裏就直接說明一些經常使用方法。

    1.BeanUtils.setProperty(Bean對象,屬性,屬性的值);

    2.BeanUtils.getProperty(Bean對象,屬性);

    3.BeanUtils.copyProperties(Bean對象,Bean對象);

    屬性拷貝:能夠從JavaBean-->JavaBean, Map-->JavaBean(須要導common-collections包)。

相關文章
相關標籤/搜索