Spring Boot + MapStruct

Natthapon Pinyo
Nov 19, 2020

--

MapStruct is a one of most powerful library to mapping in Java

Let’s say we have Customer.java and CustomerDTO.java

Customer.java

@Entity
@Data
public class Customer {
@Id
private String id;

private String firstName;

private String lastName;

}

CustomerDTO.java

@Data
public class CustomerDTO {

private String firstName;

private String lastName;

}

To integrate MapStruct with Spring Boot, there are few steps to do.

Step 1 — Add dependency in pom.xml

<dependency>
<groupId>org.mapstruct</groupId>
<artifactId>mapstruct</artifactId>
<version>1.3.1.Final</version>
</dependency>


<dependency>
<groupId>org.mapstruct</groupId>
<artifactId>mapstruct-processor</artifactId>
<version>1.3.1.Final</version>
<scope>provided</scope>
</dependency>

Step 2 — Create Mapper for our model (eg. CustomerMapper)

CustomerMapper.java

@Mapper(componentModel = "spring")
public interface CustomerMapper {

CustomerDTO toDto(Customer customer);

}

Step 3 — Use it!

@Autowired
private CustomerMapper mapper;

Step 4 — Map it!

Customer customer = ...
CustomerDTO dto = mapper.toDto(customer);

Done!

--

--

Natthapon Pinyo
Natthapon Pinyo

No responses yet