1、简介
   
dozer是一种JavaBean的映射工具,类似于apache的BeanUtils。但是dozer更强大,它可以灵活的处理复杂类型之间的映射。不
但可以进行简单的属性映射、复杂的类型映射、双向映射、递归映射等,并且可以通过XML配置文件进行灵活的配置。

2、准备

   现在开始就小试一下。

   首先,需要下载jar包,

   dozer.jar :http://dozer.sourceforge.net/downloading.html

   还需要slf4j.jar,commons-lang.jar,commons-beanutil.jar, commons-loggin.jar

3、代码

   两个bean

  1. public class Book {
  2. private String name;
  3. private String author;
  4. public String getName() {
  5. return name;
  6. }
  7. public void setName(String name) {
  8. this.name = name;
  9. }
  10. public String getAuthor() {
  11. return author;
  12. }
  13. public void setAuthor(String author) {
  14. this.author = author;
  15. }
  16. public Book() {
  17. }
  18. }
  1. public class BookVo {
  2. private String namevo;
  3. private String authorvo;
  4. public String getNamevo() {
  5. return namevo;
  6. }
  7. public void setNamevo(String namevo) {
  8. this.namevo = namevo;
  9. }
  10. public String getAuthorvo() {
  11. return authorvo;
  12. }
  13. public void setAuthorvo(String authorvo) {
  14. this.authorvo = authorvo;
  15. }
  16. public BookVo() {
  17. }
  18. }

bookMapper.xml配置文件,用来对DozerBeanMapper进行设置。

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <mappings xmlns="http://dozer.sourceforge.net"
  3. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  4. xsi:schemaLocation="http://dozer.sourceforge.net
  5. http://dozer.sourceforge.net/schema/beanmapping.xsd">
  6. <mapping>
  7. <class-a>test.Book</class-a>
  8. <class-b>test.BookVo</class-b>
  9. <field>
  10. <a>name</a>
  11. <b>namevo</b>
  12. </field>
  13. <field>
  14. <a>author</a>
  15. <b>authorvo</b>
  16. </field>
  17. </mapping>
  18. </mappings>

测试类

    1. package test;
    2. import java.util.ArrayList;
    3. import java.util.List;
    4. import org.apache.commons.logging.Log;
    5. import org.apache.commons.logging.LogFactory;
    6. import org.dozer.DozerBeanMapper;
    7. /**
    8. * 说明:
    9. *
    10. * @author lsr
    11. * @version Aug 17, 2011
    12. */
    13. public class DozerTest {
    14. /**
    15. * @param args
    16. */
    17. public static void main(String[] args) {
    18. testByXml();
    19. }
    20. public static void testByXml() {
    21. Book book = new Book();
    22. book.setAuthor("lsr");
    23. book.setName("dozer demo");
    24. DozerBeanMapper mapper = new DozerBeanMapper();
    25. List<String> mappers = new ArrayList<String>();
    26. mappers.add("bookMapper.xml");
    27. mapper.setMappingFiles(mappers);
    28. BookVo vo = new BookVo();
    29. mapper.map(book, vo);
    30. System.out.println("book's name:" + book.getName());
    31. System.out.println("bookVo's name:" + vo.getNamevo());
    32. }
    33. }

dozer-初识的更多相关文章

  1. Android动画效果之初识Property Animation(属性动画)

    前言: 前面两篇介绍了Android的Tween Animation(补间动画) Android动画效果之Tween Animation(补间动画).Frame Animation(逐帧动画)Andr ...

  2. Dozer扫盲级教程

    前言 这篇文章是本人在阅读Dozer官方文档(5.5.1版本,官网已经一年多没更新了)的过程中,整理下来我认为比较基础的应用场景. 本文中提到的例子应该能覆盖JavaBean映射的大部分场景,希望对你 ...

  3. 初识Hadoop

    第一部分:              初识Hadoop 一.             谁说大象不能跳舞 业务数据越来越多,用关系型数据库来存储和处理数据越来越感觉吃力,一个查询或者一个导出,要执行很长 ...

  4. python学习笔记(基础四:模块初识、pyc和PyCodeObject是什么)

    一.模块初识(一) 模块,也叫库.库有标准库第三方库. 注意事项:文件名不能和导入的模块名相同 1. sys模块 import sys print(sys.path) #打印环境变量 print(sy ...

  5. 初识IOS,Label控件的应用。

    初识IOS,Label控件的应用. // // ViewController.m // Gua.test // // Created by 郭美男 on 16/5/31. // Copyright © ...

  6. UI篇(初识君面)

    我们的APP要想吸引用户,就要把UI(脸蛋)搞漂亮一点.毕竟好的外貌是增进人际关系的第一步,我们程序员看到一个APP时,第一眼就是看这个软件的功能,不去关心界面是否漂亮,看到好的程序会说"我 ...

  7. Python导出Excel为Lua/Json/Xml实例教程(一):初识Python

    Python导出Excel为Lua/Json/Xml实例教程(一):初识Python 相关链接: Python导出Excel为Lua/Json/Xml实例教程(一):初识Python Python导出 ...

  8. 初识SpringMvc

    初识SpringMvc springMvc简介:SpringMVC也叫Spring Web mvc,属于表现层的框架.Spring MVC是Spring框架的一部分,是在Spring3.0后发布的 s ...

  9. 初识redis数据类型

    初识redis数据类型 1.String(字符串) string是redis最基本的类型,一个key对应一个value. string类型是二进制安全的.意思是redis的string可以包含任何数据 ...

  10. Redis初识、设计思想与一些学习资源推荐

    一.Redis简介 1.什么是Redis Redis 是一个开源的使用ANSI C 语言编写.支持网络.可基于内存亦可持久化的日志型.Key-Value 数据库,并提供多种语言的API.从2010 年 ...

随机推荐

  1. 字符串查找KMP算法(转)

    如果你用过ctrl+F这个快捷键,那么你有很大的概率使用过这个算法,这就是在待查找字符串(可能有成千上万个字符)中找出模式串(比较小,可能有几个字符),可能找到大于或者等于1次的位置.例如,在abab ...

  2. 第十七章——配置SQLServer(4)——优化SQLServer实例的配置

    原文:第十七章--配置SQLServer(4)--优化SQLServer实例的配置 前言: Sp_configure 可以用于管理和优化SQLServer资源,而且绝大部分配置都可以使用SQLServ ...

  3. 两次fclose引发的血案

    代码本来在Windows上开发的,功能基本完毕迁移到Linux上,结果一跑,乱象重重.这里只列出两个.   一崩溃: /mnt/diskc/db/app/bin/mysqld: double free ...

  4. 跨域 Iframe 通信解决方案(兼容 IE 系列浏览器。)

    实现思路: 1.postMessage(IE8+, Firefox 3.1+, Opera 9+, Safari, and Chrome) 2.利用window.navigator共享信息,使支持IE ...

  5. 颜色(color)转换为三刺激值(r/g/b)(干股)

    //颜色转换  ##665522 - 三色值 + (UIColor *)setFontColorWithString:(NSString *)color {     NSString *cString ...

  6. nginx 提供静态内容

    Serving Static Content 提供静态内容 原文地址:http://nginx.com/resources/admin-guide/serving-static-content/ Th ...

  7. Windows下Jekyll安装

    一直用Mac,换了新公司使用的电脑是windows,网上粗略的看了一下Jekyll的安装.简略的实现了一遍 首先安装Ruby Ruby安装文件下载地址 下载对应版本,我的电脑是64位的下载64位的版本 ...

  8. 有愿意共同发展USB固件做?

    有愿意共同发展USB固件做.现在,它使用STC89S52+PDIUSBD12(环教你玩USB开发板)它实现了一个USB键盘,项目地址:https://github.com/artprogramming ...

  9. Hadoop2.3.0具体安装过程

    前言:       Hadoop实现了一个分布式文件系统(Hadoop Distributed File System),简称HDFS.HDFS有高容错性的特点,并且设计用来部署在低廉的(low-co ...

  10. Spring3.0学习笔记文档的官方网站(六)--3.4.1

    3.4 依靠 3.4.1 依赖注入     依赖注入两种方式:基于构造函数DI.基于setter方法DI. 3.4.1.1 基于构造函数DI     参数是引进一个对象的.和缺乏父母之前-子类关系: ...