【问题标题】:Spring Converter<S, T> for @RequestParam and Spring Data REST用于 @RequestParam 和 Spring Data REST 的 Spring Converter<S, T>
【发布时间】:2016-01-14 03:28:42
【问题描述】:

我正在使用 Spring Boot 1.2.6 和 Spring Data REST 最新版本。

documentation 声明 Converter&lt;S, T&gt; 实例是自动注册的,但它似乎仅适用于 Sping WebMVC。我正在为我的控制器使用 Spring Data REST 的 @RepositoryRestController

我的用例方法声明如下:

public PagedResources<Resource<Equipment>> filterEquipments(
    @RequestParam("page") Integer page,
    @RequestParam("sort") String sort,
    @RequestParam("filter") MyFilter filter, // I want to register custom converter for this type
    PersistentEntityResourceAssembler resourceAssembler) {
    // method body
}

转换器(它的虚拟):

@Component
public class MyFilterConverter implements Converter<String, MyFilter> {
    @Override
    public MyFilter convert(String source) {
        return new MyFilter();
    }
}

我也听从了question 的建议,但它似乎也不适用于@RepositoryRestController

如何将自定义转换器添加到 Spring Data REST 自定义控制器? (不使用手动将转换器的引用传递给控制器​​)​​。

【问题讨论】:

    标签: java spring spring-boot spring-data spring-data-rest


    【解决方案1】:

    这是一个在启动时注册您的自定义类型Converter 实例的解决方案(然后应该应用于MyFilter 类型的控制器方法参数):

    @Configuration
    public class WebConfig {
    
        @Autowired
        private ConverterRegistry converterRegistry;
    
        @PostConstruct
        public void init() {
            registerConverters();
        }
    
        private void registerConverters() {
            converterRegistry.addConverter(new MyFilterConverter());
        }
    }
    

    【讨论】:

      猜你喜欢
      • 2015-08-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-08-02
      • 2016-10-26
      • 2014-03-07
      • 2015-10-21
      相关资源
      最近更新 更多