Dozer ist ein Java-Bean-zu-Java-Bean-Mapper, der Daten rekursiv von einem Objekt auf ein anderes kopiert. Dozer ist ein Tool zum Konvertieren von Attributen zwischen zwei Objekten. Wenn wir mit diesem Tool alle Attributwerte eines Objekts auf ein anderes Objekt übertragen, müssen wir keine wiederholten Aufrufe an die Set- und Get-Methoden schreiben.
Am wichtigsten ist, dass Dozer sicherstellt, dass interne Domänenobjekte aus der Datenbank nicht in externe Präsentationsebenen oder externe Verbraucher gelangen, und dass Dozer auch Domänenobjekte externen API-Aufrufen zuordnen kann und umgekehrt.
Das Mapping-Framework spielt eine große Rolle in der Schichtarchitektur. Wir können Änderungen an bestimmten Datenobjekten kapseln und diese Objekte an andere weitergeben Schichten (d. h. externe Dienstdatenobjekte, Domänenobjekte, Datenübertragungsobjekte, interne Dienstdatenobjekte), um Abstraktionsschichten zu erstellen. Das Mapping-Framework eignet sich ideal für die Verwendung in Mapper-Typklassen, die für die Zuordnung von Daten von einem Datenobjekt zu einem anderen verantwortlich sind.
Bei verteilter Systemarchitektur ist ein Nebeneffekt die Übertragung von Domänenobjekten zwischen verschiedenen Systemen. Nun, wir möchten nicht, dass interne Domänenobjekte nach außen sichtbar sind, und wir möchten auch nicht, dass externe Domänenobjekte unser System infiltrieren.
Die Zuordnung zwischen Datenobjekten wurde traditionell mit handcodierten Wertobjekt-Assemblern (oder Konvertern) gelöst, die Daten zwischen Objekten kopieren. Als leistungsstarkes, vielseitiges, flexibles, wiederverwendbares und konfigurierbares Open-Source-Mapping-Framework spart Dozer Entwicklern Zeit und Kosten für die Entwicklung eines benutzerdefinierten Mapper-Frameworks.
Dozers Maven-Koordinaten:
<dependency> <groupId>com.github.dozermapper</groupId> <artifactId>dozer-core</artifactId> <version>6.5.0</version> </dependency>
Um die Nutzung zu vereinfachen, stellt Dozer auch einen Starter bereit, dessen Maven Die Koordinaten sind:
<dependency> <groupId>com.github.dozermapper</groupId> <artifactId>dozer-spring-boot-starter</artifactId> <version>6.5.0</version> </dependency>
Beginnen wir mit der Verwendung des Dozer-Mapping-Frameworks im Springboot-Projekt. Die Verzeichnisstruktur des Projekts ist wie folgt:
Der erste Schritt besteht darin, das Maven-Projekt dozer_demo zu erstellen und die pom.xml-Datei #🎜 zu konfigurieren 🎜#
<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.hzz</groupId> <artifactId>dozer_demo</artifactId> <version>1.0-SNAPSHOT</version> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.2.2.RELEASE</version> <relativePath/> </parent> <dependencies> <dependency> <groupId>com.github.dozermapper</groupId> <artifactId>dozer-spring-boot-starter</artifactId> <version>6.5.0</version> </dependency> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> </dependency> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> </dependency> </dependencies> </project>
package com.hzz.dto; import lombok.Data; @Data public class UserDTO { private String userId; private String userName; private int userAge; private String address; private String birthday; }
Der vierte Schritt besteht darin, die Zuordnungsdatei biz.dozer.xml
package com.hzz.entity; import lombok.Data; import java.util.Date; @Data public class UserEntity { private String id; private String name; private int age; private String address; private Date birthday; }
dozer:
Zuordnungsdateien:- Klassenpfad:dozer/global.dozer.xml# 🎜🎜# - Klassenpfad :dozer/biz.dozer.xml
Der sechste Schritt besteht darin, die Hauptstartup-Klasse DozerApp zu erstellen<?xml version="1.0" encoding="UTF-8"?> <mappings xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://dozermapper.github.io/schema/bean-mapping" xsi:schemaLocation="http://dozermapper.github.io/schema/bean-mapping http://dozermapper.github.io/schema/bean-mapping.xsd"> <!--全局配置:<date-format>表示日期格式--> <configuration> <date-format>yyyy-MM-dd</date-format> </configuration> </mappings>
<?xml version="1.0" encoding="UTF-8"?> <mappings xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://dozermapper.github.io/schema/bean-mapping" xsi:schemaLocation="http://dozermapper.github.io/schema/bean-mapping http://dozermapper.github.io/schema/bean-mapping.xsd"> <!--描述两个类中属性的对应关系,对于两个类中同名的属性可以不映射--> <mapping date-format="yyyy-MM-dd"> <class-a>com.hzz.entity.UserEntity</class-a> <class-b>com.hzz.dto.UserDTO</class-b> <field> <a>id</a> <b>userId</b> </field> <field> <a>name</a> <b>userName</b> </field> <field> <a>age</a> <b>userAge</b> </field> </mapping> <!-- 可以使用 map-id 指定映射的标识,在程序中通过此标识来确定使用当前这个映射关系 --> <mapping date-format="yyyy-MM-dd" map-id="user"> <class-a>com.hzz.entity.UserEntity</class-a> <class-b>com.hzz.dto.UserDTO</class-b> <field> <a>id</a> <b>userId</b> </field> <field> <a>name</a> <b>userName</b> </field> <field> <a>age</a> <b>userAge</b> </field> </mapping> </mappings>Nach dem Login kopierenDas obige ist der detaillierte Inhalt vonWie SpringBoot das Dozer-Mapping-Framework integriert. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!