dozer的基本用法

参考文档:
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>

猜你喜欢

转载自blog.csdn.net/xupengbo527/article/details/78616582
今日推荐