Java基础03JavaBean的概念与BeanUtils工具174

JavaBean的概念

什么是 JavaBean?
Bean理解为组件意思, JavaBean就是Java组件,在广泛的理解就是一个类,对于组件来说,关键在于要具有“能够被IDE构建工具侦测其属性和事件”的能力,通常在Java中。

一个JavaBean要具备这样的命名规则:
1、对于一个名称为xxx的属性,通常你要写两个方法:getXxx()和setXxx()。任何浏览这些方法的工具,都会把get或set后面的第一个字母自动转换为小写。
2、对于布尔型属性,可以使用以上get和set的方式,不过也可以把get替换成is。
3、Bean的普通方法不必遵循以上的命名规则,不过它们必须是public的。
4、对于事件,要使用Swing中处理监听器的方式。如addWindowListener,removeWindowListener

BeanUtils工具类:http://apache.org/
打开这个网址 往下滑 一堆字母开头的 选Commons 第二个就是BeanUtils工具 点进去 点击左侧的Download 下载划线的
解压后导入第一个jar包到工程里就可以使用了
Java基础03JavaBean的概念与BeanUtils工具174
Java基础03JavaBean的概念与BeanUtils工具174
哎 在使用commons-beanutils-1.9.3.jar的时候 出现了错误 需要依赖于Logging这个包
所以还需要再下载 也在Commons里面 Logging下载后也是j第一个jar包添加进项目

先建一个JavaBean实体类

package com.vince.bean;

/**
 * Created by vince on 2017/6/13.
 */
public class Emp {
    private String name;
    private int age;
    private int salary;

    public String getInfo(){
        return "name="+name+",sage="+age+",salray="+salary;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    public int getSalary() {
        return salary;
    }

    public void setSalary(int salary) {
        this.salary = salary;
    }
}

使用BeanUtils工具测试
比如说 从客户端提交到的信息都是String类型的
但放到实体类 各自有各自的类型 比如工资 int
就要强制转换类型 才能放进实体类
不过太麻烦
我们可以使用BeanUtils这个类实现 不用我们亲自转换类型了

package com.vince.bean;

import org.apache.commons.beanutils.BeanUtils;
import org.junit.Test;

import java.lang.reflect.InvocationTargetException;

/**
 * Created by vince on 2017/6/13.
 */
public class BeanTest {

    @Test
    public void test(){
        //从客户端获取到的数据是这样的
        String name = "bin";
        String age = "18";
        String salary = "20000";

        Emp emp = new Emp();

        try {
            BeanUtils.setProperty(emp,"name",name);
            BeanUtils.setProperty(emp,"age",age);
            BeanUtils.setProperty(emp,"salary",salary);
        } catch (IllegalAccessException e) {
            e.printStackTrace();
        } catch (InvocationTargetException e) {
            e.printStackTrace();
        }
        System.out.println(emp.getInfo());
    }
}

Java基础03JavaBean的概念与BeanUtils工具174