JAVA中VO的快速上手

2023-03-28 09:27:22

1:VO是做什么的?

        为了更好的将值传给其他类,完成属性的赋值

        这里定义了User 和Iuser 两个类 ,传统的赋值就是通过set get这样的方式去赋值

        User user=new User("xxxname","xxxpassword");
        Iuser iuser=new Iuser();
        
        //以前赋值   通过set  get方法赋值
        iuser.setUsername(user.getUsername());
        iuser.setPassword(user.getPassword());

        传统赋值如果类的属性值很多,就会存在大量的冗余代码,书写及其不美观。

2:在pom中提供依赖。

        <dependency>
            <groupId>org.mapstruct</groupId>
            <artifactId>mapstruct-jdk8</artifactId>
            <version>1.2.0.CR1</version>
        </dependency>

        <dependency>
            <groupId>org.mapstruct</groupId>
            <artifactId>mapstruct-processor</artifactId>
            <version>1.2.0.CR1</version>
            <scope>provided</scope>
        </dependency>

<!-- 为了节省类的get set 构造器等的方法的代码冗余   我这里没有使用 我是直接提供的set  get等方法   使用这一定安装lomok插件-->
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
        </dependency>

3:使用Vo的方式进行赋值。

        创建两个类,一个是原本类User(类似于上面的User类),另一个是被赋值的类UserVo(上面的Iuser类),两个类都提供每个属性的set,get,toString ,全参构造器 ,无参构造器方法。这里的属性名字不一样。为了展示一般情况(特殊情况是字段都相同)

 

 

4:创建一个自定义接口,接口上加入Mapper注解(为了能创建这个接口对象,注意引包的时候不能引错了),然后在接口里面创建一个自己的接口实例对象。

 5:编写方法:

 6:在测试类中测试:

    @Test
    void  Trans(){
        User user=new User("xxxxusername","xxxxpassword");
        UserVo userVo = UserMapper.usermapper.Trans(user);//调用方法
        System.out.println(userVo);
    }

7:查看结果:

 这里UserVo类的属性就被赋值上去了。

  • 作者:mdzzwdnybz123
  • 原文链接:https://blog.csdn.net/mdzzwdnybz123/article/details/122185797
    更新时间:2023-03-28 09:27:22