kotlin中使用mapstruct

前言

我们在java中使用mapstruct只需要简单的引入我们的相关的maven依赖就可以了,但是在kotlin中我们无法直接使用java的形式来处理,那么接下来我们将实现如何在kotlin中来使用我们的mapstruct。

创建实体和我们的dto以及我们的mapper

首先我们创建一个kotlin的项目,然后在我们的kotlin项目中分别创建以下的实体:

实体Flight

package com.kotlin.mapstruct.demo.entity

class Flight {

    var flightId: Int? = null

    var flightName: String? = null

}

转换以后的实体FlightDto

package com.kotlin.mapstruct.demo.dto

class FlightDto {

    var flightId: Int? = null

    var flightNewName: String? = null

}

转换的工具类FlightConverter

package com.kotlin.mapstruct.demo.mapper


import com.kotlin.mapstruct.demo.dto.FlightDto
import com.kotlin.mapstruct.demo.entity.Flight
import org.mapstruct.Mapper
import org.mapstruct.Mapping
import org.mapstruct.Mappings

@Mapper(componentModel = "spring")
interface FlightConverter {

    /**
     * 功能描述: 实现实体的转换
     */
    @Mappings(Mapping(target = "flightNewName", source = "flightName"), Mapping(target = "flightId", source = "flightId"))
    fun convertToDto(flight: Flight) : FlightDto

    /**
     * 功能描述: 实现集合的转换
     */
    fun convertToDtos(flights: List<Flight>) : List<FlightDto>
}

构建项目

到此处我们的整个实现的流程和我们的java是一致的,如果是基于我们的java工程我们只需要clean下然后编译下就可以了,但是在我们的kotlin中这样是不行的我们必须按照以下步骤来实现。
clean项目=》build项目【或者ctrl+F9】=》使用kotlin:kpta插件=》build项目【或者ctrl+F9】这样才算完成我们的mapper的生成。
在这里插入图片描述

打包项目

接着是我们的项目打包,当我们使用到mapstruct插件的时候不能直接package进行打包这样打出来的包是没有生成我们的mapper的实现的我们需要按照以下的方式进行打包:
clean项目=》build项目【或者ctrl+F9】=》使用kotlin:kpta插件=》package项目

懒人解决方案

我们还可以直接使用组合的maven的命令的形式来组合我们自定义的打包或者编译的实现,直接新建一个maven命令来实现打包一体化

clean compile kotlin:kapt package

在这里插入图片描述
编译的我们也可以一样的方式来实现

clean compile kotlin:kapt compile

有不理解的地方大家可以直接到github上直接下载本章节的demo例子自己验证整个的过程:https://github.com/lazyboyl/kotlin-mapstruct-demo

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

笨_鸟_不_会_飞

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值