当前位置: 首页 > news >正文

二手商品网站开发背景苏州网上注册公司网址

二手商品网站开发背景,苏州网上注册公司网址,wordpress pdf下载插件,广告公司网站源码在现代软件开发中#xff0c;尤其是后端开发中#xff0c;数据传输对象#xff08;DTO#xff09;和实体对象的转换是一个常见且重要的操作。理解和正确实现这种转换不仅能提高代码的可维护性#xff0c;还能提升应用的性能和安全性。本文将深入探讨 toDto 和 toEntity 方…在现代软件开发中尤其是后端开发中数据传输对象DTO和实体对象的转换是一个常见且重要的操作。理解和正确实现这种转换不仅能提高代码的可维护性还能提升应用的性能和安全性。本文将深入探讨 toDto 和 toEntity 方法并结合 Eladmin 框架帮助开发者更好地掌握这一关键技术。 什么是 Eladmin Eladmin 是一个基于 Spring Boot 的开源管理后台框架集成了 Spring Security、JWT、Spring Data JPA、MapStruct 等流行技术。它提供了一整套完整的后台管理解决方案极大地方便了开发者快速构建后台系统。 什么是 DTO 和 实体对象 数据传输对象DTO 是一种设计模式用于在不同层如客户端和服务器端之间传输数据。DTO 通常是一个简单的 POJOPlain Old Java Object仅包含数据不包含业务逻辑。它的主要目的是携带数据并减少网络流量。 实体对象Entity 通常是与数据库表直接映射的对象包含了数据和业务逻辑。在大多数情况下实体对象用于持久化数据和执行复杂的业务操作。 为什么需要转换 在一个典型的应用程序中实体对象和 DTO 之间的转换是不可避免的。主要原因包括 安全性直接暴露实体对象可能会泄露敏感信息。分离关注点DTO 关注数据传输而实体对象关注业务逻辑。简化客户端代码客户端不需要知道实体对象的内部结构只需要关心需要的数据。性能优化DTO 可以减少不必要的数据传输提升性能。 实现 toDto 和 toEntity 方法 在 Eladmin 中使用 MapStruct 进行对象转换非常方便。MapStruct 是一个代码生成器它简化了 Java bean 类型之间的映射。 示例User 实体和 UserDTO 首先我们定义一个 User 实体类 Entity Table(name user) public class User {IdGeneratedValue(strategy GenerationType.IDENTITY)private Long id;private String username;private String email;private String password;// Getters and setters }然后定义一个 UserDTO 类 public class UserDTO {private Long id;private String username;private String email;// Getters and setters }在 Eladmin 中通常会有一个 Mapper 接口来定义实体和 DTO 之间的转换 import org.mapstruct.Mapper; import org.mapstruct.ReportingPolicy; import org.mapstruct.factory.Mappers;Mapper(componentModel spring, unmappedTargetPolicy ReportingPolicy.IGNORE) public interface UserMapper {UserMapper INSTANCE Mappers.getMapper(UserMapper.class);UserDTO toDto(User user);User toEntity(UserDTO userDTO); }配置和使用 MapStruct 在 Eladmin 中自动生成转换代码 在 Maven 中添加 MapStruct 依赖 dependencygroupIdorg.mapstruct/groupIdartifactIdmapstruct/artifactIdversion1.4.2.Final/version /dependency dependencygroupIdorg.mapstruct/groupIdartifactIdmapstruct-processor/artifactIdversion1.4.2.Final/versionscopeprovided/scope /dependency在 application.yml 中配置 MapStruct mapstruct:default-component-model: spring这样MapStruct 将自动生成实现类并将其注册为 Spring Bean。你可以直接在服务类中注入使用 Service public class UserService {Autowiredprivate UserMapper userMapper;public UserDTO getUserDto(Long userId) {User user userRepository.findById(userId).orElseThrow(() - new EntityNotFoundException(User not found));return userMapper.toDto(user);}public User createUser(UserDTO userDTO) {User user userMapper.toEntity(userDTO);return userRepository.save(user);} }结合实际项目完整的 CRUD 示例 以下是一个完整的 CRUD 示例展示了如何在 Eladmin 中使用 toDto 和 toEntity 方法进行对象转换。 Controller RestController RequestMapping(/api/users) public class UserController {Autowiredprivate UserService userService;GetMapping(/{id})public ResponseEntityUserDTO getUser(PathVariable Long id) {UserDTO userDTO userService.getUserDto(id);return ResponseEntity.ok(userDTO);}PostMappingpublic ResponseEntityUserDTO createUser(RequestBody UserDTO userDTO) {User user userService.createUser(userDTO);UserDTO createdUserDTO userMapper.toDto(user);return ResponseEntity.status(HttpStatus.CREATED).body(createdUserDTO);}PutMapping(/{id})public ResponseEntityUserDTO updateUser(PathVariable Long id, RequestBody UserDTO userDTO) {User updatedUser userService.updateUser(id, userDTO);UserDTO updatedUserDTO userMapper.toDto(updatedUser);return ResponseEntity.ok(updatedUserDTO);}DeleteMapping(/{id})public ResponseEntityVoid deleteUser(PathVariable Long id) {userService.deleteUser(id);return ResponseEntity.noContent().build();} }Service Service public class UserService {Autowiredprivate UserRepository userRepository;Autowiredprivate UserMapper userMapper;public UserDTO getUserDto(Long userId) {User user userRepository.findById(userId).orElseThrow(() - new EntityNotFoundException(User not found));return userMapper.toDto(user);}public User createUser(UserDTO userDTO) {User user userMapper.toEntity(userDTO);return userRepository.save(user);}public User updateUser(Long id, UserDTO userDTO) {User user userRepository.findById(id).orElseThrow(() - new EntityNotFoundException(User not found));user.setUsername(userDTO.getUsername());user.setEmail(userDTO.getEmail());return userRepository.save(user);}public void deleteUser(Long id) {userRepository.deleteById(id);} }结论 DTO 和实体对象之间的转换在现代应用开发中至关重要。通过实现 toDto 和 toEntity 方法或者使用自动化工具如 MapStruct我们可以简化这一过程提高代码的可维护性和性能。在 Eladmin 框架中结合 Spring Boot 和 MapStruct转换操作变得更加简洁和高效。 希望本文能帮助你更好地理解和掌握 DTO 和实体对象之间的转换技术并在实际项目中灵活应用。
http://www.w-s-a.com/news/61474/

相关文章:

  • 哪个网站做h5好做汽车网站
  • 汝州网站制作住房和城乡建设部官网进行查询
  • 怎么做整人点不完的网站获取网站访客qq号码源码
  • 自建网站软件网站如何减少404跳转
  • 我想学制作网站吗公司起名网站十大排名
  • 广州白云手机网站建设淘宝店铺怎么推广
  • 青海省住房与城乡建设厅网站珠海高端网站制作公司
  • 深圳个性化建网站公司简便网站建设
  • 网站安全狗十大免费ppt网站在线
  • 进网站后台显示空白图片模板 网站源码
  • dedecms 英文网站怎么在网站上做模式题库
  • 轻网站怎么建立国外做评论的网站
  • 拉米拉网站建设乐清网站网站建设
  • 获取网站全站代码申请免费域名的方法
  • 网站制作建设公司哪家好wordpress仪表盘打不开
  • 最佳网站制作模板用手机能创建网站吗
  • 只做黑白摄影的网站网站建设好后给领导作介绍
  • 移动手机网站建设如何做网站地图视频
  • 手工业网站怎么做成都酒吧设计公司
  • .net 网站生成安装文件目录重庆网站建设沛宣网络
  • 怎么做钓鱼网站吗百度免费域名注册网站
  • 如何给网站做外部优化今年国内重大新闻
  • 有没有做生物科技相关的网站弄一个app大概多少钱
  • 五金加工东莞网站建设怎么做网页跳转
  • 淄博网站优化价格wordpress没有小工具
  • 自己搭建服务器做视频网站wordpress发布文章 发布
  • php仿博客园网站阅读分享网站模板
  • 网站宣传的劣势域名注册长沙有限公司
  • 怎样联系自己建设网站企业怎样做好网站建设
  • 网站制作需求分析电商网站建设浩森宇特