,可以通过以下步骤实现:
<dependencies>
<!-- Mapstruct -->
<dependency>
<groupId>org.mapstruct</groupId>
<artifactId>mapstruct</artifactId>
<version>1.4.2.Final</version>
</dependency>
<!-- Lombok -->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.20</version>
<scope>provided</scope>
</dependency>
</dependencies>
@Data
@Entity
public class User {
@Id
private Long id;
private String name;
private String email;
// 其他属性和方法
}
@Data
public class UserDTO {
private Long id;
private String name;
private String email;
// 其他属性和方法
}
@Mapper
public interface UserMapper {
UserMapper INSTANCE = Mappers.getMapper(UserMapper.class);
UserDTO domainToDto(User user);
List<UserDTO> domainToDto(List<User> users);
}
@RestController
public class UserController {
private final UserRepository userRepository;
private final UserMapper userMapper;
public UserController(UserRepository userRepository, UserMapper userMapper) {
this.userRepository = userRepository;
this.userMapper = userMapper;
}
@GetMapping("/users")
public List<UserDTO> getUsers() {
List<User> users = userRepository.findAll();
return userMapper.domainToDto(users);
}
}
在上述代码中,通过调用userMapper.domainToDto(users)
将域类列表映射为DTO类列表,并返回给客户端。
总结: 使用Mapstruct和lombok可以简化在SpringBoot应用程序中将域类映射到DTO类的过程。Mapstruct提供了方便的注解来定义映射规则,而lombok可以通过注解自动生成常用的getter、setter和构造函数等代码。这样可以减少手动编写映射代码的工作量,提高开发效率。
推荐的腾讯云相关产品和产品介绍链接地址:
领取专属 10元无门槛券
手把手带您无忧上云