【发布时间】:2015-06-15 12:32:15
【问题描述】:
我正在使用推土机版本 5.5.1。我想配置我的自定义转换器,所以我有这个
import org.dozer.DozerConverter;
import com.example.movies.api.models.response.ClientResponseDTO;
public class MyCustomConverter
extends DozerConverter<ClientResponseDTO, String> {
public MyCustomConverter() {
super(ClientResponseDTO.class, String.class);
}
@Override
public String convertTo(ClientResponseDTO source, String destination) {
return "ClientResponseDTO Converted to string!";
}
@Override
public ClientResponseDTO convertFrom(String source, ClientResponseDTO destination) {
return new ClientResponseDTO();
}
}
我正在像这样使用 Spring 加载:
@Bean
public Mapper dozerBeanMapper() {
DozerBeanMapper mapper = new DozerBeanMapper();
List<CustomConverter> converters = new ArrayList<>();
converters.add(new MyCustomConverter(ClientResponseDTO.class, String.class));
mapper.setCustomConverters(converters);
return mapper;
}
然后,我有这个用法:
@Autowired Mapper mapper;
...
ClientResponseDTO clientResponseDTO = clientService.getClient(id);
String conversion = this.mapper.map(clientResponseDTO, String.class);
并且永远不会调用自定义转换器。你知道这是为什么吗?问候!
【问题讨论】:
-
this.mapper 来自哪里?你@Inject 吗?
-
请注意,您的构造函数不需要有参数:
public PagingDDTransformer() { super(ClientResponseDTO.class, String.class); } -
你是对的!我已经改过了。我已经更新了帖子。它仍然无法正常工作
-
如你所说,映射器来自注入。我正在使用 Spring 4,我正在自动装配 bean。
标签: java type-conversion transform dozer