【JavaWeb】BeanUtils工具类的使用

前言

在dao层、servlet层或者其它层时,我们常常需要创建javabean对象;
而使用BeanUtils工具类可以为我们快速的创建javabean对象。举例如下:

class User{
	private Integer id;
	private String name;
	private Integer age;

	public User(){}
	public User(Integer id,String name,Integer age){
		this.id = id;
		this.name = name;
		this.age = age;
	}

	public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    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;
    }

	@Override
    public String toString() {
        return "we{" +
                "id=" + id +
                ", name='" + name + '\'' +
                ", age=" + age +
                '}';
    }
	
}

 

使用BeanUtils工具类

1.使用BeanUtils工具类前需要导入jar包:commons-beanutils-1.8.0 和 commons-logging-1.1.1

2.使用BeanUtils.populate(Object bean, Map properties)方法就能完成参数注入
bean: 需要注入的 javabean对象
properties:相应的参数值,为Map类型,以键值对的形式,要求key的值与 bean所属类属性名对应,同时 bean所属的类需要提供set方法
 
该方法的原理是提取Map中的键值对,如:存在 key:name时就会调用 setName给 bean对象设置 key:name对应的 value值

public class Main{
	public static void main(){
		User user = new User(); 
		System.out.println(user); // user{id=null, name='null', age=null}
		
		Map<String,Object> map = new HashMap<>();
        map.put("id",1);
        map.put("name","张三");
        map.put("age",17);
		
		BeanUtils.populate(user,map);
		System.out.println(user); // we{id=1, name='张三', age=17}
		
	}
	
}

 

开发中的应用

在实际开发中,我们可以将其封装为一个工具类中的一个方法,从而让编码操作变得更便捷。如下:

public class Utils{

	// 使用泛型,返回注入之后的 bean对象
    public static <T> T copyParamToBean(T bean,Map value){
        try {
            BeanUtils.populate(bean,value);
        } catch (Exception e) {
            throw new RuntimeException(e);
        }
        return bean;
    }

}
public class Main{
	public static void main(String[] args){

		Map<String,Object> map = new HashMap<>();
        map.put("id",1);
        map.put("name","张三");
        map.put("age",17);

		// 省略了 User user = new User();
		User user = Utils.copyParamToBean(new user(),map);

	}
}
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

り澄忆秋、

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值