Springboot中关于Beanutils.copyProperties( )的用法

BeanUtils提供对Java反射和自省API的包装。其主要目的是利用反射机制对JavaBean的属性进行处理。

很多情况下,对JavaBean的处理导致大量get/set代码堆积,增加了代码长度和阅读代码的难度。

但Beanutils.copyProperties( )可以代替这样繁琐的操作

举个简单的例子

先新建2个类

1、User类

public class User {

    private String id;

    private String username;

    private String password;

    private String role;

    private Integer limitTimes;

    private Integer number;

    private String questions;

    private Long startTime;

    private Long endTime;

    private String testUrl;

    private Long createTime;


    public User() {

    }


    public String getId() {
        return id;
    }

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

    public String getUsername() {
        return username;
    }

    public void setUsername(String username) {
        this.username = username;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }

    public String getRole() {
        return role;
    }

    public void setRole(String role) {
        this.role = role;
    }

    public Integer getLimitTimes() {
        return limitTimes;
    }

    public void setLimitTimes(Integer limitTimes) {
        this.limitTimes = limitTimes;
    }

    public Integer getNumber() {
        return number;
    }

    public void setNumber(Integer number) {
        this.number = number;
    }

    public Long getStartTime() {
        return startTime;
    }

    public void setStartTime(Long startTime) {
        this.startTime = startTime;
    }

    public Long getEndTime() {
        return endTime;
    }

    public void setEndTime(Long endTime) {
        this.endTime = endTime;
    }

    public Long getCreateTime() {
        return createTime;
    }

    public void setCreateTime(Long createTime) {
        this.createTime = createTime;
    }

    public String getQuestions() {
        return questions;
    }

    public void setQuestions(String questions) {
        this.questions = questions;
    }

    public String getTestUrl() {
        return testUrl;
    }

    public void setTestUrl(String testUrl) {
        this.testUrl = testUrl;
    }
}

2、UserVo

public class User {

    private String id;

    private String username;

    private String password;

    private String role;

    private Integer limitTimes;

    private Integer number;

    private String questions;

    private Long startTime;

    private Long endTime;

    private String testUrl;

    private Long createTime;


    public User() {

    }


    public String getId() {
        return id;
    }

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

    public String getUsername() {
        return username;
    }

    public void setUsername(String username) {
        this.username = username;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }

    public String getRole() {
        return role;
    }

    public void setRole(String role) {
        this.role = role;
    }

    public Integer getLimitTimes() {
        return limitTimes;
    }

    public void setLimitTimes(Integer limitTimes) {
        this.limitTimes = limitTimes;
    }

    public Integer getNumber() {
        return number;
    }

    public void setNumber(Integer number) {
        this.number = number;
    }

    public Long getStartTime() {
        return startTime;
    }

    public void setStartTime(Long startTime) {
        this.startTime = startTime;
    }

    public Long getEndTime() {
        return endTime;
    }

    public void setEndTime(Long endTime) {
        this.endTime = endTime;
    }

    public Long getCreateTime() {
        return createTime;
    }

    public void setCreateTime(Long createTime) {
        this.createTime = createTime;
    }

    public String getQuestions() {
        return questions;
    }

    public void setQuestions(String questions) {
        this.questions = questions;
    }

    public String getTestUrl() {
        return testUrl;
    }

    public void setTestUrl(String testUrl) {
        this.testUrl = testUrl;
    }
}

3、测试

@GetMapping("/test123456")
    public void test123456() {
        User user = new User();
        user.setLimitTimes( 11 );
        user.setStartTime( (long) 22 );
        user.setEndTime( (long) 33 );
        user.setId("66");
        user.setUsername("zj");
        user.setRole( "aaa" );
        user.setCreateTime( (long) 77 );
        user.setPassword("aaa");
        user.setNumber( 1 );
        user.setQuestions( "aaa" );
        user.setTestUrl( "url" );
        //以上为初始化

        //法1
        UserVo userVo= new UserVo();
        userVo.setLimitTimes(user.getLimitTimes());
        userVo.setStartTime( user.getStartTime());
        userVo.setEndTime( user.getEndTime());
        userVo.setId(user.getId());
        userVo.setUsername(user.getUsername());
        userVo.setRole( user.getRole() );
        userVo.setCreateTime( user.getCreateTime() );
        userVo.setPassword(user.getPassword());
        userVo.setNumber( user.getNumber());
        userVo.setQuestions( user.getQuestions() );
        userVo.setTestUrl( user.getTestUrl() );

//        法2
        UserVo userVo2= new UserVo();
        BeanUtils.copyProperties(user,userVo2);

        System.out.println( "----" );

    }

打个断点:

是不是Beanutils.copyProperties( ) 用起来很简单,方便呢:P

  • 2
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

小牛呼噜噜

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

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

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

打赏作者

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

抵扣说明:

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

余额充值