Heim >Java >javaLernprogramm >Tutorial zur Verwendung von Mapstruct
Um Objekte mit MapStruct bidirektional abzubilden, können Sie zwei Mapper-Schnittstellen erstellen, eine für jede Richtung. Zum Beispiel:MapStruct, eine Java-Bibliothek zur Objektzuordnung, ermöglicht die bidirektionale Objektzuordnung über Mapper-Schnittstellen. Es bietet Typsicherheit, Leistung und Erweiterbarkeit, macht eine manuelle Codegenerierung überflüssig, reduziert Fehler und optimiert pe
<code class="java">@Mapper public interface EntityToDtoMapper { Dto map(Entity entity); } @Mapper public interface DtoToEntityMapper { Entity map(Dto dto); }</code>Dann können Sie diese Mapper verwenden, um zwischen den beiden Objekten zu konvertieren:
<code class="java">Entity entity = Entity.builder().name("John Doe").age(30).build(); Dto dto = entityToDtoMapper.map(entity); Entity newEntity = dtoToEntityMapper.map(dto);</code>
Was sind die Vorteile der Verwendung von Mapstruct für die Objektzuordnung in Java?
MapStruct bietet mehrere Vorteile für die Objektzuordnung in Java, einschließlich:
Automatische Codegenerierung:
MapStruct generiert den Zuordnungscode für Sie und spart Ihnen so Zeit und Mühe.Typsicherheit: Der generierte Code ist typsicher und stellt sicher, dass die konvertierten Objekte die richtigen Typen haben.
Leistung:
Der generierte Code von MapStruct ist auf Leistung optimiert, was ihn zu einer schnellen und effizienten Lösung für die Objektzuordnung macht.@Mappings
verwenden, um die benutzerdefinierte Mapping-Logik anzugeben. Zum Beispiel:<code class="java">@Mapper public interface EntityToDtoMapper { @Mappings({ @Mapping(target = "dtoName", source = "entity.name"), @Mapping(target = "dtoAge", source = "entity.age", qualifiedByName = "ageMapping") }) Dto map(Entity entity); @Named("ageMapping") int mapAge(int age); }</code>
ageMapping
eine benutzerdefinierte Zuordnungsfunktion, die zum Konvertieren des Alters von der Entität in das DTO verwendet wird.Das obige ist der detaillierte Inhalt vonTutorial zur Verwendung von Mapstruct. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!