springboot项目 convert层

文章介绍了如何在Spring项目中利用MapStruct进行对象构建的优化。MapStruct是一个编译时代码生成库,能提高性能并减少手动映射代码。通过添加依赖、配置注解,可以方便地整合到Spring中,自动处理对象之间的转换。在Service层,可以利用MapStruct的default方法拆解构建对象的代码,提高代码可读性和维护性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

背景:spring项目中,每个模块层次分明,最常见的service为业务模块,会有大量的构建对象的过程,这一点可以结合Mapstrust进行整合

目录

一、mapStrust坐标

二、mapStrust特点

三:插件

四:基本使用

五:service改造


一、mapStrust坐标

<dependency>
            <groupId>org.mapstruct</groupId>
            <artifactId>mapstruct</artifactId>
            <version>1.5.0.Beta1</version>
</dependency>
<dependency>
            <groupId>org.mapstruct</groupId>
            <artifactId>mapstruct-processor</artifactId>
            <version>1.5.0.Beta1</version>
 </dependency>

二、mapStrust特点

1: 基于编译期间生产代码、
2:性能高,精细控制,解耦

三:插件

MapStruct Support

四:基本使用

1:可以使用@Mapper(componentModel = "spring")整合spring,生成实现类将出现@Componet,
被spring托管

2:注入自己实例,CrmTripConvert INSTANCE = Mappers.getMapper(CrmTripConvert.class);

3:写方法接口,支持映射规则,支持复合型注解,可自定义注解来忽略某些字段

4:对于批量的转换,必须保证单个的只有一个,否则实现类不知道用哪一个

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

    CrmTripConvert INSTANCE = Mappers.getMapper(CrmTripConvert.class);

    @IgnoreBaseEntity
    CrmTripVo convertPoToVo(CrmTrip trip);

    @IgnoreBaseEntity
    List<CrmTripVo> batchConvertPoToVo(List<CrmTrip> tripList);
}

五:service改造

1:小编开发认为,service中构建对象非常常见,而这种构建对象,其实不会重复使用
    可以结合mapSTtust,使用default来将这些构建方法拆除,从而减轻service

2:此方法,必须保证方法名规范,写明注释,否则不好维护


@Mapper(componentModel = "spring")
public interface CrmUserConvert {
   
    CrmUserConvert INSTANCE = Mappers.getMapper(CrmUserConvert.class);
 
    /**
     * 根据产品id,用户id,返回用户
     *
     * @param crmProductId crm产品id
     * @param id           id
     * @return {@link CrmUser}
     */
    default CrmUser buildUserByCrmProductIds(String crmProductId,String id){
        CrmUser user = new CrmUser();
        user.setId(id);
        user.setCrmProductIds(crmProductId);
        return user;
    }



}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值