[JAVA] Cartographie de Bean avec MapStruct Partie 1

Utilisez MapStruct 1.1.0

Consultez le site officiel pour plus de détails sur MapStruct http://mapstruct.org/

Cartographie entre les beans avec le même champ

Bean


public class ProfileForm {
    private String name;
    private int age;
    private String location;

    // constructor/getter/setter
}

public class Profile {
    private String name;
    private int age;
    private String location;

    // constructor/getter/setter
}

Créer un mappeur

@Mapper
public interface ProfileMapper {
    ProfileMapper INSTANCE = Mappers.getMapper(ProfileMapper.class);

    public Profile profileFormToProfile(ProfileForm form);
}

Courir

ProfileForm form = new ProfileForm("Michael Scofield", 30, "les États-Unis d'Amérique");
Profile profile = ProfileMapper.INSTANCE.profileFormToProfile(form);

System.out.println(profile.getName()); //Michael Scofield
System.out.println(profile.getAge());  // 30
System.out.println(profile.getLocation()); //les États-Unis d'Amérique

Exclure une partie du champ du mappage

Pour exclure certains champs du mappage, utilisez l'annotation @ Mapping. Définissez l'attribut cible pour exclure les champs et l'attribut ignore sur «true».

@Mapper
public interface ProfileMapper {
    ProfileMapper INSTANCE = Mappers.getMapper(ProfileMapper.class);

    @Mapping(target = "name", ignore = true)
    public Profile profileFormToProfile(ProfileForm form);
}

Mappage entre les listes

Correctif du mappeur

@Mapper
public interface ProfileMapper {
    ProfileMapper INSTANCE = Mappers.getMapper(ProfileMapper.class);

    public Profile profileFormToProfile(ProfileForm form);
    //ajouter à
    public List<Profile> profileFormToProfile(List<ProfileForm> forms);
}

Courir

List<ProfileForm> forms = Arrays.asList(new ProfileForm("Michael Scofield", 30, "les États-Unis d'Amérique")
                                      , new ProfileForm("Lincoln Burrows", 34, "les États-Unis d'Amérique"));
List<Profile> profiles = ProfileMapper.INSTANCE.profileFormToProfile(forms);

System.out.println(profiles.get(1).getName()); //Lincoln Burrows
System.out.println(profiles.get(1).getAge());  // 34
System.out.println(profiles.get(1).getLocation()); //les États-Unis d'Amérique

Cartographie entre les beans avec différents champs

Bean


public class Foo {
    private String foo1;
    private String foo2;

    // constructor/getter/setter
}

public class Bar {
    private String bar1;
    private String bar2;

    // constructor/getter/setter
}

Créer un mappeur


@Mapper
public interface FooBarMapper {
    FooBarMapper INSTANCE = Mappers.getMapper(FooBarMapper.class);

    @Mapping(target = "bar1", source = "foo1")
    @Mapping(target = "bar2", source = "foo2")
    public Bar fooToBar(Foo foo);
}

Spécifiez le champ (cible) à mapper et le champ (source) à mapper avec l'annotation @ Mapping.

Courir

Foo foo = new Foo("AIUEO", "Kakikukeko");
Bar bar = FooBarMapper.INSTANCE.fooToBar(foo);

System.out.println(bar.getBar1()); //AIUEO
System.out.println(bar.getBar2()); //Kakikukeko

Il existe d'autres fonctionnalités pour la cartographie, mais elles le seront la prochaine fois.

Recommended Posts

Cartographie de Bean avec MapStruct Partie 1
Cartographie Bean avec MapStruct Partie 3
Cartographie de Bean avec MapStruct Partie 2
Effectuer une cartographie de bean à grande vitesse à l'aide de MapStruct
SaveAsBinaryFile avec Spark (partie 2)
Copie de bean à l'aide de MapStruct
Utilisez Fast Mapping Livery MapStruct avec Lombok et Java 11
Java pour apprendre avec les ramen [Partie 1]
Test de l'API REST à l'aide de REST Assured Part 2
Bean mapping utile dans Java ModelMapper
Ajouter une validation de bean avec Micronaut (Java)
Contrôle d'entrée facile avec Bean Validation!
Traitement serveur avec Java (Introduction partie 1)
Réintroduction aux opérateurs avec RxJava Partie 1