dozer的基本用法

来源:互联网 发布:java面向对象 编程题 编辑:程序博客网 时间:2024/06/08 13:11

参考文档:
https://www.cnblogs.com/jingmoxukong/p/5952447.html#%E9%85%8D%E7%BD%AE-dozerbeanmapperfactorybean

dozer是什么?

 dozer是一个JavaBean的映射工具库。

dozer的基本使用:

  1. maven的引用:

        <!--dozerBeanMapper的使用--> <dependency>       <groupId>net.sf.dozer</groupId>       <artifactId>dozer</artifactId>       <version>5.5.1</version> </dependency>
  2. sping的配置文件引入:

       <!--配置文件用于使用DozerBeanMapper--> <bean id="mapper" class="org.dozer.DozerBeanMapper">    <property name = "mappingFiles">    <list>        <value>spring/dozer.xml</value>    </list>     </property>  </bean>
  3. dozer.xml的内容:

    <?xml version="1.0" encoding="UTF-8"?><mappings xmlns="http://dozer.sourceforge.net"                       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  xsi:schemaLocation="http://dozer.sourceforge.net  http://dozer.sourceforge.net/schema/beanmapping.xsd"><mapping date-format="yyyy-MM-dd"> <class-a>com.example.pojo.Student</class-a> <class-b>com.example.pojo.StudentB</class-b><field>    <a>aName</a>    <b>bName</b></field><field>    <a>aAge</a>    <b>bAge</b></field><field>    <a>aMoney</a>    <b>bMoney</b></field> </mapping>  </mappings>

    注意:属性名字相同的可以不用写到改映射里面。代码可以完成自动映射。

  4. Student类与StudentB类的代码。

       private String aName;              private String bName;    private long aAge;                       private long bAge;   private double aMoney;                private double bMoney;

    注意:此处必须生成get/set方法。

  5. 代码中的具体实现:

       @Autowired   private DozerBeanMapper mapper;    @RequestMapping(value = "/testDozer",method =    RequestMethod.GET)    @ResponseBody public String testDozer(){        Student student = new Student();        student.setaName("xupengbo");        student.setaMoney(100);        student.setaAge(10);       StudentB map = mapper.map(student, StudentB.class);       return  map.getbName();

    }
    以上就是dozer的基本使用。

另外介绍一下比较常用的深度映射。

StudentC:

 public class StudentC {     private Animal animal;

StudentD:

    public class StudentD {          private String studentName;          private double studengtMoney;  

Animal:

     public class Animal {         private String name;         private double money;  

dozer.xml:

<mapping date-format="yyyy-MM-dd">    <class-a>com.example.testDozerPojo.StudentC</class-a>    <class-b>com.example.testDozerPojo.StudentD</class-b>    <field>        <a>animal.name</a>        <b>studentName</b>    </field>    <field>        <a>animal.money</a>        <b>studengtMoney</b>    </field></mapping>
原创粉丝点击