【问题标题】:why DozerConverter is not working?为什么 DozerConverter 不工作?
【发布时间】: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


【解决方案1】:

参考dozer documentation你应该添加映射到bean描述。 例如。

<bean id="org.dozer.Mapper" class="org.dozer.DozerBeanMapper">
<property name="mappingFiles">
<list>
  <value>systempropertymapping1.xml</value>
  <value>dozerBeanMapping.xml</value>
  <value>injectedCustomConverter.xml</value>
</list>
</property><property name="customConvertersWithId">
<map>
  <entry key="CustomConverterWithId" ref="configurableConverterBeanInstance1" />
  <entry key="CustomConverterWithId2" ref="configurableConverterBeanInstance2" />
</map>
</property>
</bean>

【讨论】:

    猜你喜欢
    • 2018-02-23
    • 2016-11-19
    • 1970-01-01
    • 2013-06-01
    • 2011-09-29
    • 2014-05-16
    • 2011-01-21
    • 2016-03-11
    • 2011-04-04
    相关资源
    最近更新 更多