在mapstruct重写接口中两种实现方式,方式一:@Mapper要和Mappers.getMapper搭配一起使用缺一不可,不然无法注入spring容器中,方式二:也可简化操作用@Mapper(componentModel = "spring")这一个操作省略掉Mappers.getMapper,代码如下图:
@Mapper(componentModel = "spring") //@Mapper public interface UserConvert { //UserConvert INSTANCE = Mappers.getMapper( UserConvert.class ); UserVo userToUserVo(User user); }
使用方式一时,无法使用@Resource或者@Autowired自动注入的方式去引用,要使用UserConvert.INSTANCE.userToUserVo方式,不然启动会报错A component required a bean of type 'com.XXX.convert.XXXConvert' that could not be found,
综上所述,建议使用方式二@Mapper(componentModel = "spring"),即可配合@Resource使用,简单无脑,如有错误之处欢迎大佬指正