首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Dozer + Spring: MappingException: Dozer Bean Mapper已初始化

Dozer + Spring: MappingException: Dozer Bean Mapper已初始化
EN

Stack Overflow用户
提问于 2015-03-01 07:49:47
回答 1查看 1.9K关注 0票数 2

我正在尝试在我当前运行Spring和Hibernate的webapp上实现Dozer作为桥接模式的帮助,但我认为我做错了什么,因为尝试多次使用DozerBeanMapper实例会给我一个MappingException。

Spring配置:

代码语言:javascript
复制
@Configuration
public class AppConfig {
    ...
    @Bean
    public DozerBeanMapper dozerBeanMapper() {
        return new DozerBeanMapper();
    }
}

用法:

代码语言:javascript
复制
@Service
public class FooService {
    @Autowired
    private DozerBeanMapper mapper;

    public void doSomething() {
        mapper.addMapping(new CustomRules());
        mapper.map(foo, ImmutableFoo.class);
        ...
    }
    ...
}

第一次调用此服务将正常工作,但任何进一步尝试使用它都会在mapper.addMapping()上导致异常。有人能指出我做错了什么吗?

EN

回答 1

Stack Overflow用户

发布于 2015-04-27 19:34:56

您不应该在每次调用doSomething时都添加映射器,即使它可以工作,它的可伸缩性也会降低。在这种情况下,您应该将mapper.addMapping(new Custom Rules());移动到bean实例化。

代码语言:javascript
复制
@Configuration
public class AppConfig {
  ...
    @Bean
    public DozerBeanMapper dozerBeanMapper() {
        DozerBeanMapper mapper = new DozerBeanMapper();
        mapper.addMapping(new CustomRules());
        return mapper;
    }
}

在使用dozer - mapper.map(...)之前,您必须将所有配置都设置为dozer。在第一次使用推土器之后,dozer将其内部属性设置为不允许添加映射或其他重新配置。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28788371

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档