<dependency>
<groupId>com.fasterxml.jackson.dataformat</groupId>
<artifactId>jackson-dataformat-properties</artifactId>
<version>2.13.0</version>
</dependency>
public class AppConfig {
private String appName;
private String appVersion;
private int maxConnections;
@Override
public String toString() {
return "AppConfig{" +
"appName='" + appName + '\'' +
", appVersion='" + appVersion + '\'' +
", maxConnections=" + maxConnections +
'}';
}
}
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.dataformat.javaprop.JavaPropsMapper;
import com.fasterxml.jackson.dataformat.javaprop.JavaPropsSchema;
import java.io.File;
import java.io.IOException;
import java.util.Properties;
public class Main {
public static void main(String[] args) throws IOException {
AppConfig config = new AppConfig();
config.setAppName("MyApp");
config.setAppVersion("1.0");
config.setMaxConnections(10);
ObjectMapper mapper = new JavaPropsMapper();
JavaPropsSchema schema = JavaPropsSchema.emptySchema().withLineSeparator("");
mapper.setSchema(schema);
Properties properties = mapper.writeValueAs(config);
mapper.writeValue(new File("app-config.properties"), properties);
Properties loadedProperties = mapper.readValue(new File("app-config.properties"), Properties.class);
AppConfig loadedConfig = mapper.readerFor(AppConfig.class).with(schema).readValue(loadedProperties);
System.out.println(loadedConfig);
}
}