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

象山县住房建设局网站网络推广如何收费

象山县住房建设局网站,网络推广如何收费,做怎么样的自己的网站,广东专业做网站排名哪家好精心整理了最新的面试资料和简历模板,有需要的可以自行获取 点击前往百度网盘获取 点击前往夸克网盘获取 Spring Boot整合MapStruct教程 1. 什么是MapStruct? MapStruct是一个基于注解的Java代码生成器,用于对象属性映射的自动化实现。相比…

精心整理了最新的面试资料和简历模板,有需要的可以自行获取

点击前往百度网盘获取
点击前往夸克网盘获取


Spring Boot整合MapStruct教程

1. 什么是MapStruct?

MapStruct是一个基于注解的Java代码生成器,用于对象属性映射的自动化实现。相比手动编写映射代码,它可以:

  • 自动生成类型安全的映射实现类
  • 减少样板代码
  • 编译时生成代码(无运行时性能损耗)
  • 支持复杂映射场景(嵌套对象、类型转换等)

2. 环境准备

  • JDK 1.8+
  • Spring Boot 3.x
  • Maven/Gradle
  • IDE(推荐IntelliJ IDEA)

3. 整合步骤

3.1 添加依赖

pom.xml中添加:

<!-- MapStruct核心依赖 -->
<dependency><groupId>org.mapstruct</groupId><artifactId>mapstruct</artifactId><version>1.5.5.Final</version>
</dependency><!-- 注解处理器(必须) -->
<dependency><groupId>org.mapstruct</groupId><artifactId>mapstruct-processor</artifactId><version>1.5.5.Final</version><scope>provided</scope>
</dependency>

如果使用Lombok,需要确保mapstruct-processor在lombok之后配置

3.2 创建实体与DTO

// User.java
@Data
@AllArgsConstructor
@NoArgsConstructor
public class User {private Long id;private String username;private String email;private LocalDateTime createTime;
}// UserDTO.java
@Data
@NoArgsConstructor
@AllArgsConstructor
public class UserDTO {private String username;private String email;private String formattedDate;
}

3.3 创建Mapper接口

@Mapper(componentModel = "spring")
public interface UserMapper {@Mapping(source = "createTime", target = "formattedDate", dateFormat = "yyyy-MM-dd HH:mm")UserDTO toDto(User user);@Mapping(source = "formattedDate", target = "createTime",dateFormat = "yyyy-MM-dd HH:mm")User toEntity(UserDTO dto);
}

注解说明:

  • @Mapper(componentModel = "spring"):生成Spring可注入的Mapper实现类
  • @Mapping:定义字段映射规则
  • 支持自动类型转换(如String <-> Date)

3.4 配置注解处理器(重要!)

在Maven的pom.xml中添加构建配置:

<build><plugins><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-compiler-plugin</artifactId><configuration><annotationProcessorPaths><path><groupId>org.mapstruct</groupId><artifactId>mapstruct-processor</artifactId><version>1.5.5.Final</version></path><!-- 如果有Lombok需要添加 --><path><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><version>${lombok.version}</version></path></annotationProcessorPaths></configuration></plugin></plugins>
</build>

3.5 使用Mapper

@RestController
public class UserController {@Autowiredprivate UserMapper userMapper;@GetMapping("/user")public UserDTO getUser() {User user = new User(1L, "john", "john@example.com", LocalDateTime.now());return userMapper.toDto(user);}
}

4. 验证结果

生成的实现类在target/generated-sources/annotations/目录下,编译后会生成类似:

@Generated
@Component
public class UserMapperImpl implements UserMapper {@Overridepublic UserDTO toDto(User user) {// 自动生成的映射逻辑}@Overridepublic User toEntity(UserDTO dto) {// 自动生成的映射逻辑}
}

5. 高级用法

5.1 自定义转换方法

@Mapper(componentModel = "spring")
public interface UserMapper {default String statusToCode(Status status) {return status.name().toLowerCase();}
}

5.2 多对象合并

@Mapping(source = "user.name", target = "name")
@Mapping(source = "address.city", target = "city")
UserInfo merge(User user, Address address);

5.3 嵌套映射

@Mapper(uses = AddressMapper.class)
public interface UserMapper {UserDTO toDto(User user);
}

6. 常见问题

Q: 为什么我的Mapper接口实现类没有生成?
A: 检查:

  1. 是否添加了mapstruct-processor依赖
  2. Maven是否执行了mvn clean compile
  3. IDE是否启用了注解处理

Q: 如何与Lombok配合使用?
A: 确保在pom.xml中Lombok配置在MapStruct之前

Q: 如何处理字段名称不一致的情况?
A: 使用@Mapping注解显式指定映射关系

7. 总结

通过整合MapStruct可以:

  • 减少80%以上的手动映射代码
  • 提升代码可维护性
  • 保持类型安全
  • 轻松处理复杂映射场景

建议在DTO/VO转换、微服务间数据传输等场景优先使用MapStruct。


提示:实际开发中推荐结合Spring Boot Validation进行数据校验,构建更健壮的应用程序。

http://www.dtcms.com/wzjs/112993.html

相关文章:

  • 重庆网站快速排名提升网络营销软文范例300字
  • 如何做超一个电子商务网站互联网品牌的快速推广
  • 动态网站开发工程师—asp百度指数怎样使用
  • wordpress 自定义页面列表网站推广seo教程
  • 给政府做网站的公司刘雯每日资讯
  • 手机自助建站永久免费营业推广是什么
  • 做热饮店网站什么是百度权重
  • wordpress 自带模板合肥seo整站优化
  • 长沙免费网站排名苏州首页排名关键词优化
  • 医疗营销网站建设方案路由器优化大师
  • 校园招生网站建设的简报热点新闻事件今日最新
  • 网站建设问题及解决办法上海网络推广软件
  • flash网站模板带后台yw77731域名查询
  • 制作网站的设计难点网络关键词排名软件
  • 网站内做关键词连接搜索百度一下
  • 网站建设及推广衬胶蝶阀爱战网关键词挖掘
  • 网站备案幕布大小在线智能识图
  • 武汉建网站网络推广运营外包公司
  • 重庆五号线金建站百度推广售后电话
  • 网站改版优化seo课程培训机构
  • 网站建设教程免费夕滋湖南岚鸿官网济南优化哪家好
  • 网站建设需要注意什么百度资讯指数
  • 包图网免费素材图库官网网站优化网络推广seo
  • 重庆网站制作公司多少钱子域名在线查询
  • 胶南网站建设公司网络推广渠道和方式
  • 广东外发加工网外链seo服务
  • 台州建设网站长春网站seo
  • 设计公司网站页面设计推广优化网站排名
  • 石家庄网站建设接单企业seo推广
  • 网站开发应注意哪些问题2022年大事热点新闻