将对象转换为自定义数据传输对象(DTO)是一种常见的编程任务,特别是在构建微服务架构或进行前后端分离开发时。DTO用于在不同层之间传输数据,减少直接暴露领域模型,提高系统的安全性和灵活性。
假设我们有一个User
实体类和一个UserDTO
类,我们希望将User
对象转换为UserDTO
对象。
public class User {
private String name;
private int age;
// getters and setters
}
public class UserDTO {
private String userName;
private int userAge;
// getters and setters
}
public UserDTO convertToDTO(User user) {
UserDTO dto = new UserDTO();
dto.setUserName(user.getName());
dto.setUserAge(user.getAge());
return dto;
}
首先,添加MapStruct依赖:
<dependency>
<groupId>org.mapstruct</groupId>
<artifactId>mapstruct</artifactId>
<version>1.4.2.Final</version>
</dependency>
定义映射接口:
import org.mapstruct.Mapper;
import org.mapstruct.factory.Mappers;
@Mapper
public interface UserMapper {
UserMapper INSTANCE = Mappers.getMapper(UserMapper.class);
UserDTO userToUserDTO(User user);
}
使用映射器:
User user = new User();
user.setName("John Doe");
user.setAge(30);
UserDTO dto = UserMapper.INSTANCE.userToUserDTO(user);
@Mapping
注解指定映射规则。@AfterMapping
和@BeforeMapping
。通过上述方法和工具,可以有效地将对象转换为自定义DTO,提升系统的整体性能和可维护性。
没有搜到相关的文章