kotlin使用mapstruct(四)

博客介绍了Python相关招聘信息,重点讲解集成spring的内容。通过修改AppleConverter,给@Mapper添加componentModel字段赋值为spring,实现使用spring。还展示了mapstruct生成的代码,添加Component注解后,AppleConverterImpl成为受spring管理的bean可任意注入。

这节主要介绍下集成spring

1.修改上一节中的AppleConverter,给@Mapper添加componentModel字段赋值为spring

@Mapper(componentModel = "spring")
abstract class AppleConverter {}

2.这么easy就可以使用了

@RestController
class MyController{

    @Autowired
    lateinit var appleConverter: AppleConverter
    @GetMapping("/hello")
    fun sayHello():String{

        val apple = Apple(1,"my apple",true)
        println(apple)
        val appleDto = appleConverter.convertToDto(apple)
        println(appleDto)
        val appleModel = appleConverter.convertToModel(appleDto)
        println(appleModel)

        return "hello"
    }
}

3.访问一下输出,跟我们期待的效果一样

Apple(appleId=1, appleName=my apple, real=true)
AppleDto(appleId=1, appleName=my apple, description=水果)
Apple(appleId=1, appleName=my apple, real=true)

4.让我们看一下mapstruct给我们生成了什么

import javax.annotation.Generated;
import org.springframework.stereotype.Component;

@Generated(
    value = "org.mapstruct.ap.MappingProcessor",
    date = "2018-08-29T10:19:12+0800",
    comments = "version: 1.3.0.Beta1, compiler: javac, environment: Java 1.8.0_172 (Oracle Corporation)"
)
@Component
public class AppleConverterImpl extends AppleConverter {

    @Override
    public AppleDto convertToDto(Apple apple) {
        if ( apple == null ) {
            return null;
        }

        AppleDto appleDto = new AppleDto();

        appleDto.setAppleId( apple.getAppleId() );
        appleDto.setAppleName( apple.getAppleName() );

        afterConvertToDto( apple, appleDto );

        return appleDto;
    }

    @Override
    public Apple convertToModel(AppleDto appleDto) {
        if ( appleDto == null ) {
            return null;
        }

        Apple apple = new Apple();

        apple.setAppleId( appleDto.getAppleId() );
        apple.setAppleName( appleDto.getAppleName() );

        afterConvertToModel( appleDto, apple );

        return apple;
    }
}

我们可以看到,生成的代码加上了Component注解,AppleConverterImpl就成为受spring管理的bean了,所以我们可以在任何地方注入了

转载于:https://my.oschina.net/weidedong/blog/1935730

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值