springboot2 FileEncodingApplicationListener简介
所属分类 springboot
浏览量 952
spring-boot-2.0.0.RELEASE.jar
/META-INF/spring.factories
# Application Listeners
org.springframework.context.ApplicationListener=\
org.springframework.boot.ClearCachesApplicationListener,\
org.springframework.boot.builder.ParentContextCloserApplicationListener,\
org.springframework.boot.context.FileEncodingApplicationListener,\
org.springframework.boot.context.config.AnsiOutputApplicationListener,\
org.springframework.boot.context.config.ConfigFileApplicationListener,\
org.springframework.boot.context.config.DelegatingApplicationListener,\
org.springframework.boot.context.logging.ClasspathLoggingApplicationListener,\
org.springframework.boot.context.logging.LoggingApplicationListener,\
org.springframework.boot.liquibase.LiquibaseServiceLocatorApplicationListener
检查 file-encoding 是否匹配
spring.mandatory-file-encoding
mandatory 强制的
spring.mandatory-file-encoding=xxx
@Override
public void onApplicationEvent(ApplicationEnvironmentPreparedEvent event) {
ConfigurableEnvironment environment = event.getEnvironment();
// 没有配置则返回
if (!environment.containsProperty("spring.mandatory-file-encoding")) {
return;
}
String encoding = System.getProperty("file.encoding");
String desired = environment.getProperty("spring.mandatory-file-encoding");
if (encoding != null && !desired.equalsIgnoreCase(encoding)) {
logger.error("System property 'file.encoding' is currently '" + encoding
+ "'. It should be '" + desired
+ "' (as defined in 'spring.mandatoryFileEncoding').");
logger.error("Environment variable LANG is '" + System.getenv("LANG")
+ "'. You could use a locale setting that matches encoding='"
+ desired + "'.");
logger.error("Environment variable LC_ALL is '" + System.getenv("LC_ALL")
+ "'. You could use a locale setting that matches encoding='"
+ desired + "'.");
throw new IllegalStateException(
"The Java Virtual Machine has not been configured to use the "
+ "desired default character encoding (" + desired + ").");
}
}
Thread [main] (Suspended (breakpoint at line 60 in FileEncodingApplicationListener))
FileEncodingApplicationListener.onApplicationEvent(ApplicationEnvironmentPreparedEvent) line: 60
FileEncodingApplicationListener.onApplicationEvent(ApplicationEvent) line: 47
SimpleApplicationEventMulticaster.doInvokeListener(ApplicationListener, ApplicationEvent) line: 172
SimpleApplicationEventMulticaster.invokeListener(ApplicationListener>, ApplicationEvent) line: 165
SimpleApplicationEventMulticaster.multicastEvent(ApplicationEvent, ResolvableType) line: 139
SimpleApplicationEventMulticaster.multicastEvent(ApplicationEvent) line: 127
EventPublishingRunListener.environmentPrepared(ConfigurableEnvironment) line: 74
SpringApplicationRunListeners.environmentPrepared(ConfigurableEnvironment) line: 54
SpringApplication.prepareEnvironment(SpringApplicationRunListeners, ApplicationArguments) line: 351
SpringApplication.run(String...) line: 317
DemoApp.main(String[]) line: 98
上一篇
下一篇
java死锁实例
SpringBoot启动过程简介
Springboot2 Tomcat自定义配置
maven jar包冲突处理
aerospike 某客户 stop-write 实例
aerospike 最大 TTL 限制