2015-04-09 2 views
3

Я использую бульдозер версии 5.5.1. И я хочу, чтобы настроить свой собственный конвертер так что я этоПочему DozerConverter не работает?

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(); 
    } 

} 

Что я нагружении весной, как это:

@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); 

И пользовательский конвертер никогда не вызывается. Вы знаете, почему? С уважением!

+0

Откуда этот мэппер? Вы вставляете его? –

+0

Обратите внимание, что вашему конструктору не нужны параметры: 'public PagingDDTransformer() {super (ClientResponseDTO.class, String.class); } ' –

+0

Вы правы! я уже изменил его. Я обновил сообщение. Он все еще не работает – jscherman

ответ

1

Обратитесь к dozer documenttion, вам следует добавить отображение в описание 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>