如何设置spring-data-rest的默认媒体类型?

时间:2016-02-04 15:52:05

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

RepositoryRestConfiguration我可以看到设置spring.data.rest.default-media-type=application/json可能会更改@RepositoryRestResource投放的默认媒体类型。

@SuppressWarnings("deprecation")
public class RepositoryRestConfiguration {
    private MediaType defaultMediaType = MediaTypes.HAL_JSON;
}

问题:由于此类位于deprecation中,设置/覆盖默认类型的正确方法是什么?

2 个答案:

答案 0 :(得分:8)

您可以通过RepositoryRestConfiguration或仅使用application.properties中的属性执行此操作。请参阅文档here

不推荐使用RepositoryRestConfiguration类。其中有一些方法已被弃用。类上的@SuppressWarnings("deprecation")注释并不意味着类本身已被弃用。这只是一个用于告诉IDE不在IDE中显示弃用警告的注释。

最简单的方法是在application.properties中。但是,您的属性名称错误。您不会将其设置为spring.data.rest.default-media-type。它期望的实际属性是spring.data.rest.defaultMediaType。所以在你的application.properties中,你可以有:

spring.data.rest.defaultMediaType=application/json

使用RepositoryRestConfiguration,您可以完成相同的操作:

@Configuration
class CustomRestMvcConfiguration {

  @Bean
  public RepositoryRestConfigurer repositoryRestConfigurer() {

    return new RepositoryRestConfigurerAdapter() {

      @Override
      public void configureRepositoryRestConfiguration(RepositoryRestConfiguration config) {
        config.setDefaultMediaType(MediaType.APPLICATION_JSON);
      }
    };
  }
}

答案 1 :(得分:0)

@Component
public class CustomRestConfig implements RepositoryRestConfigurer {
    @Override
    public void 
    configureRepositoryRestConfiguration(RepositoryRestConfiguration config) {
        config.setDefaultMediaType(MediaType.APPLICATION_JSON);
    }
}