Как намекнуть бульдозеру, чтобы копировать автонастроенные бобы вместо клонирования? - PullRequest
0 голосов
/ 04 сентября 2018

У меня есть класс

public class Monitor {

    @Autowired
    private QueryService;


    public void perform(){
       // code here
    } 
}

Я использую dozer, но dozer дает мне исключение, например

org.dozer.MappingException: java.lang.NoSuchMethodException:XX.QueryService.<init>()
        at org.dozer.util.MappingUtils.throwMappingException(MappingUtils.java:82) ~[dozer-core-6.0.0.jar:6.0.0]
        at org.dozer.factory.ConstructionStrategies$ByConstructor.newInstance(ConstructionStrategies.java:327) ~[dozer-core-6.0.0.jar:6.0.0]
        at org.dozer.factory.ConstructionStrategies$ByConstructor.create(ConstructionStrategies.java:311) ~[dozer-core-6.0.0.jar:6.0.0]
        at org.dozer.factory.DestBeanCreator.applyStrategies(DestBeanCreator.java:80) ~[dozer-core-6.0.0.jar:6.0.0]
        at org.dozer.factory.DestBeanCreator.create(DestBeanCreator.java:65) ~[dozer-core-6.0.0.jar:6.0.0]
        at org.dozer.MappingProcessor.createByCreationDirectiveAndMap(MappingProcessor.java:220) ~[dozer-core-6.0.0.jar:6.0.0]
        at org.dozer.MappingProcessor.mapCustomObject(MappingProcessor.java:548) ~[dozer-core-6.0.0.jar:6.0.0]
        at org.dozer.MappingProcessor.mapOrRecurseObject(MappingProcessor.java:501) ~[dozer-core-6.0.0.jar:6.0.0]
        at org.dozer.MappingProcessor.mapFromFieldMap(MappingProcessor.java:392) ~[dozer-core-6.0.0.jar:6.0.0]
        at org.dozer.MappingProcessor.mapField(MappingProcessor.java:338) ~[dozer-core-6.0.0.jar:6.0.0]
        at org.dozer.MappingProcessor.map(MappingProcessor.java:298) ~[dozer-core-6.0.0.jar:6.0.0]

Есть ли способ намекнуть dozer, что это Java-бин, и использовать существующий бин, т.е. скопировать бин как есть, а не клонировать его?

1 Ответ

0 голосов
/ 04 сентября 2018

С Документация на бульдозер :

Dozer поддерживает копирование объекта по ссылке. Для таких объектов преобразование / преобразование не выполняется. Этот подход позволяет уменьшить количество выделенных объектов, но применим только тогда, когда Java-бины должны быть выброшены (сборщик мусора) после преобразования. Этот подход обычно рекомендуется для настройки производительности процесса отображения, когда это возможно. Убедитесь, что оба типа объектов одинаковы, иначе вы столкнетесь с проблемами приведения. Значение по умолчанию неверно'.

<field copy-by-reference="true">
  <a>copyByReference</a>
  <b>copyByReferencePrime</b>
</field>       
...