一 点睛
自动配置要满足两个条件:
- 能配置CharacterEncodingFilter这个Bean
- 能配置encoding和forceEncoding这两个参数
二 HttpEncodingProperties源码解读
Spring Boot的自动配置是基于类型安全配置,在application.properties直接配置可以覆盖该配置类的默认值。
源码分析如下:
//在application.properties配置的时候前缀是spring.http.encoding
@ConfigurationProperties(prefix = "spring.http.encoding")
public class HttpEncodingProperties {
public static final Charset DEFAULT_CHARSET = Charset.forName("UTF-8");
//编码默认配置是UTF-8,若修改可使用spring.http.encoding.charset=编码
private Charset charset = DEFAULT_CHARSET;
//设置forceEncoding,默认为true,若修改可使用spring.http.encoding.force=false
private boolean force = true;
public Charset getCharset() {
return this.charset;
}
public void setCharset(Charset charset) {
this.charset = charset;