在 Spring Reactive 中使用 application.properties 在请求标头中设置 Content-type
Posted
技术标签:
【中文标题】在 Spring Reactive 中使用 application.properties 在请求标头中设置 Content-type【英文标题】:Set Content-type in the request header with application.properties in Spring Reactive 【发布时间】:2021-08-02 18:04:39 【问题描述】:我需要将休息调用的内容类型设置为 "application/json;charset=UTF-8" 。我可以通过将以下代码添加到 @RequestMapping
来完成produces = "application/json;charset=UTF-8"
但我想知道这是否可以在不更改任何代码的情况下实现,只需在application.properties
中添加任何属性即可。尝试通过添加以下属性,但没有奏效:
server.servlet.encoding.charset=UTF-8
server.servlet.encoding.force-response=true
【问题讨论】:
【参考方案1】:假设你正在使用spring-webflux,参考Content Type Resolvers
您可以通过添加WebFluxConfigurer
来配置响应媒体类型,并且可以使用@Value
从application.properties中读取媒体类型
@Configuration
@EnableWebFlux
public class WebConfig implements WebFluxConfigurer
@Value("$mediaType")
private String mediaType;
public void configureContentTypeResolver(RequestedContentTypeResolverBuilder builder)
builder.fixedResolver(MediaType.parseMediaType(mediaType));
还有application.properties
mediaType=application/json;charset=UTF-8
【讨论】:
以上是关于在 Spring Reactive 中使用 application.properties 在请求标头中设置 Content-type的主要内容,如果未能解决你的问题,请参考以下文章
Spring 5 Reactive - WebExceptionHandler 没有被调用
Reactive Spring实战 -- 响应式Kafka交互
在 Spring Reactive 中使用 application.properties 在请求标头中设置 Content-type