如何设置 spring-data-rest 的默认媒体类型?
How to set the default media type for spring-data-rest?
从 RepositoryRestConfiguration
我可以看到设置 spring.data.rest.default-media-type=application/json
可以更改 @RepositoryRestResource
提供的默认媒体类型。
@SuppressWarnings("deprecation")
public class RepositoryRestConfiguration {
private MediaType defaultMediaType = MediaTypes.HAL_JSON;
}
问题:由于这个 class 在 deprecation
中,set/override 默认类型的正确方法是什么?
您可以通过 RepositoryRestConfiguration
或在 application.properties 中使用 属性 来完成此操作。请参阅文档 here。
RepositoryRestConfiguration
class 未弃用。其中有一些方法已被弃用。 class 上的 @SuppressWarnings("deprecation")
注释并不意味着 class 本身已被弃用。这只是一个注释,用于告诉 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);
}
};
}
}
@Component
public class CustomRestConfig implements RepositoryRestConfigurer {
@Override
public void
configureRepositoryRestConfiguration(RepositoryRestConfiguration config) {
config.setDefaultMediaType(MediaType.APPLICATION_JSON);
}
}
从 RepositoryRestConfiguration
我可以看到设置 spring.data.rest.default-media-type=application/json
可以更改 @RepositoryRestResource
提供的默认媒体类型。
@SuppressWarnings("deprecation")
public class RepositoryRestConfiguration {
private MediaType defaultMediaType = MediaTypes.HAL_JSON;
}
问题:由于这个 class 在 deprecation
中,set/override 默认类型的正确方法是什么?
您可以通过 RepositoryRestConfiguration
或在 application.properties 中使用 属性 来完成此操作。请参阅文档 here。
RepositoryRestConfiguration
class 未弃用。其中有一些方法已被弃用。 class 上的 @SuppressWarnings("deprecation")
注释并不意味着 class 本身已被弃用。这只是一个注释,用于告诉 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);
}
};
}
}
@Component
public class CustomRestConfig implements RepositoryRestConfigurer {
@Override
public void
configureRepositoryRestConfiguration(RepositoryRestConfiguration config) {
config.setDefaultMediaType(MediaType.APPLICATION_JSON);
}
}