Spring Data Rest:永远不会调用自定义Converter <entity,resource =“”>

时间:2016-07-26 14:00:06

标签: spring spring-mvc spring-data-rest spring-hateoas

我正在尝试使用Spring Data Rest为ConverterEntity对象实现自定义Resource,但从不调用转换器。

我正在关注this documentation

  

但是,如果您的项目需要以不同的格式输出,   可以完全替换默认的传出JSON   用你自己的代表。如果您注册自己的   ApplicationContext中的ConversionService并注册您自己的   转换器,然后你可以返回一个资源   实施您的选择。

这就是我试图做的事情。

我有一个@Configuration类,使用此方法扩展RepositoryRestMvcConfiguration

@Configuration
@EnableWebMvc
@EnableHypermediaSupport(type = HypermediaType.HAL)
public class RepositoryBaseConfiguration extends RepositoryRestMvcConfiguration {

    @Override
    public DefaultFormattingConversionService defaultConversionService() {
        return super.defaultConversionService();
    }

}

我有一个扩展RepositoryRestConfigurerAdapter的类,具有此实现:

@Configuration
public class RepositoryBaseConfigurerAdapter extends RepositoryRestConfigurerAdapter {

    @Override
    public void configureConversionService(ConfigurableConversionService conversionService) {
        if(!conversionService.canConvert(Entity.class, Resource.class))
            conversionService.addConverter(new EntityConverter());
        super.configureConversionService(conversionService);
    }

}

这两个类的两个方法都被正确调用和管理,所以很自然地认为转换器已在应用程序上下文中注册...

这是我的自定义转换器EntityConverter:

@Component
public class EntityConverter implements Converter<Entity, Resource> {

    @Override
    public Resource convert(Entity source) {
        System.out.println("method convert of class EntityConverter");
        return null;
    }

}

Spring Data Rest永远不会调用“convert”方法。

有什么不对/遗失?

提前致谢。

0 个答案:

没有答案