从RepositoryRestConfiguration
我可以看到设置spring.data.rest.default-media-type=application/json
可能会更改@RepositoryRestResource
投放的默认媒体类型。
@SuppressWarnings("deprecation")
public class RepositoryRestConfiguration {
private MediaType defaultMediaType = MediaTypes.HAL_JSON;
}
问题:由于此类位于deprecation
中,设置/覆盖默认类型的正确方法是什么?
答案 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);
}
}