Class FileEncodingApplicationListener

All Implemented Interfaces:
EventListener, ApplicationListener<ApplicationEnvironmentPreparedEvent>, Ordered

public class FileEncodingApplicationListener extends Object implements ApplicationListener<ApplicationEnvironmentPreparedEvent>, Ordered
An ApplicationListener that halts application startup if the system file encoding does not match an expected value set in the environment. By default has no effect, but if you set spring.mandatory_file_encoding (or some camelCase or UPPERCASE variant of that) to the name of a character encoding (e.g. "UTF-8") then this initializer throws an exception when the file.encoding System property does not equal it.

The System property file.encoding is normally set by the JVM in response to the LANG or LC_ALL environment variables. It is used (along with other platform-dependent variables keyed off those environment variables) to encode JVM arguments as well as file names and paths. In most cases you can override the file encoding System property on the command line (with standard JVM features), but also consider setting the LANG environment variable to an explicit character-encoding value (e.g. "en_GB.UTF-8").

Dave Syer, Madhura Bhave