|
| 1 | +== What is Dozer? |
| 2 | +Dozer is a Java Bean to Java Bean mapper that recursively copies data |
| 3 | +from one object to another. Typically, these Java Beans will be of |
| 4 | +different complex types. |
| 5 | + |
| 6 | +Dozer supports simple property mapping, complex type mapping, |
| 7 | +bi-directional mapping, implicit-explicit mapping, as well as recursive |
| 8 | +mapping. This includes mapping collection attributes that also need |
| 9 | +mapping at the element level. |
| 10 | + |
| 11 | +Dozer not only supports mapping between attribute names, but also |
| 12 | +automatically converting between types. Most conversion scenarios are |
| 13 | +supported out of the box, but Dozer also allows you to specify custom |
| 14 | +conversions via XML. |
| 15 | + |
| 16 | +The mapper is used any time you need to take one type of Java Bean and |
| 17 | +map it to another type of Java Bean. Most field mapping can be done |
| 18 | +automatically by Dozer using reflection, but any custom mapping can be |
| 19 | +predescribed in XML format. Mapping is bi-directional so only one |
| 20 | +relationship between classes needs defining. If any property names on |
| 21 | +both objects are the same you do not even need to do any explicit |
| 22 | +property mapping for these fields. |
| 23 | + |
| 24 | +The picture below depicts some of the common areas Dozer could be |
| 25 | +inserted into an architecture. Notice that it typically is utilized at |
| 26 | +the boundaries (entry/exit). Dozer will make sure that your internal |
| 27 | +domain objects from the database do not bleed into external presentation |
| 28 | +layers or to external consumers. It can also help map your domain |
| 29 | +objects to external APIs calls and vice-versa. |
| 30 | + |
| 31 | +image:../images/architecture.gif[architecture] |
| 32 | + |
| 33 | +The bean mapper is written in Java and relies heavily on the Jakarta |
| 34 | +Commons Bean Utils package for Java Bean utility methods. |
| 35 | + |
| 36 | +=== Why Map? |
| 37 | +Please read the link:../documentation/whymap.adoc[Why Map?] page. |
| 38 | + |
| 39 | +=== Frequently Asked Questions |
| 40 | +Please read the link:../documentation/faq.adoc[FAQ] page. |
0 commit comments