JavaBean
JavaBean的理解
A、JavaBean是一种JAVA语言写成的可重用组件。可重复使用,减少代码冗余,方便维护;
B、简单一点:JavaBean是一种特殊的类,或者说满足一定规范的类;其实就是一个类,只是该类满足一定的规则
PS:把javaBean也可以称为实体类
满足的规则
1、类必须要被public修饰符修饰 【访问权限最大化,非抽象的】
2、对象属性/字段私有化(建议对象属性使用包装类) 【控制直接操作对象属性】
3、必须提供一个公共无参的构造方法 【方便框架或底层通过反射创建对象】
4、必须提供一套公共setter和getter方法 【方便设置和获取属性/el表达式】
Bean属性与对象属性
A、Bean属性 == JavaBean属性:getter和setter方法上的属性,其中getter方法上的属性称之为可读属性,setter方法上面的属性称之为可写属性;
B、对象属性 == 字段,即实例变量;
C、一般情况下bean属行和对象属性拥有相同的名字,当然也可以不一样,甚至没有对象属性;
D、当使用el表达式就是使用的getter方法上的Bean属性获取值的;
实例:
/*** JavaBean*/
public class JavaBeanDemo { //~必须是一个公共的类//~建议对象属性/字段是私有化private String name;//对象属性/字段 nameprivate Integer age;//对象属性/字段 ageprivate Boolean sex;//对象属性/字段 sexprivate boolean value;//对象属性/字段 valuepublic JavaBeanDemo() { //~必须提供公共无参方法}/*** ~必须给每个对象属性/字段提供一套setter和getter方法* 是方法也可叫做属性:* 属性分为:* 可读属性 getXxx** 可写属性 setXxx* 【属性名是把get或者set或is(boolean)去掉,其后面的Xxx但之后首字母要小写xxx才叫属性名,与对象属性/字段无关】* * 所以以下有6个属性,一定跟对象属性/字段无关** 一般字段和属性名是一致*/public String getpP(){ //bean属性pP【只有一个可读属性】return "pP";}public void setxX(String xx){ //bean属性xX【只有一个可写属性】System.out.println(xx);}public String getName() { //bean属性name【可读属性】return name;}public void setName(String name) { //bean属性name【可写属性】this.name = name;}public Integer getAge() { //bean属性age【可读属性】return age;}public void setAge(Integer age) { //bean属性age【可写属性】this.age = age;}public Boolean getSex() { //bean属性sex【可读属性】return sex;}public void setSex(Boolean sex) { //bean属性sex【可写属性】this.sex = sex;}//注意:基本数据类型boolean的可读属性前面是ispublic boolean isValue() { //bean属性value【可读属性】return value;}public void setValue(boolean value) { //bean属性value【可写属性】this.value = value;}
}
Introspector类
提供了一种标准的工具来了解目标Java Bean支持的属性,事件和方法
static BeanInfo getBeanInfo(类<?> beanClass)
内省Java Bean并了解其所有属性,暴露的方法和事件 参数为JavaBean类字节码;还会拿到父类的属性获取bean信息
public class JavaBeanText {@Testpublic void testAll() throws IntrospectionException {//获取bean信息【该方法会抛出异常】BeanInfo beanInfo = Introspector.getBeanInfo(JavaBeanDemo.class);//会拿到父类里面的属性System.out.println(beanInfo);//java.beans.GenericBeanInfo@2acf57e3}
}
static BeanInfo getBeanInfo(类<?> beanClass, 类<?> stopClass)
内省Java bean并了解其属性,暴露的方法,低于给定的“停止”点 参数2,不会拿到父类中的属性
public class JavaBeanText {@Testpublic void