如何暗示推土机复制自动装豆而不是克隆?

问题描述 投票:0回答:1

我有课

public class Monitor {

    @Autowired
    private QueryService;


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

我正在使用推土机,但推土机给我例外

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 bean并使用现有的bean,即复制bean而不是克隆它?

java spring spring-boot dozer
1个回答
0
投票

来自Dozer documentation

Dozer支持通过引用复制对象。不对这些对象进行转换/转换。此方法允许减少大量对象分配,但仅在转换后要丢弃Java Bean(垃圾收集)时才适用。通常建议在可能的情况下对映射过程进行性能调整。确保两个对象类型相同或者您将遇到转换问题。默认值为“false”。

<field copy-by-reference="true">
  <a>copyByReference</a>
  <b>copyByReferencePrime</b>
</field>       
© www.soinside.com 2019 - 2024. All rights reserved.