Chnmuc:
В тесте JUnit в Игре! 2.6.25 приложение выполняется в IntelliJ, я пытаюсь внедрить тестовый конфиг: Config в приложение: Приложение создано Guice. Но приложение: Приложение не содержит впрыскивается конфигурации. Что я делаю неправильно?
Config config = ConfigFactory.parseFile(new File("test.conf")).resolve();
// myapp.key resolved to "value"
String value = config.getString("myapp.key");
GuiceApplicationBuilder guiceApplicationBuilder = new GuiceApplicationBuilder();
guiceApplicationBuilder.withConfigLoader(environment -> ConfigFactory.load(config));
Application app = guiceApplicationBuilder.build();
// why myapp.key cannot be resolved?
app.config().getString("myapp.key");
test.conf
myapp.key = value
Также пытался (безуспешно):
guiceApplicationBuilder.loadConfig(config);
guiceApplicationBuilder.configure(config);
cbley:
Вы на самом деле отбрасывая Builder приложения, который имеет свой собственный конфигурационный загрузчик, так как строитель неизменная структура данных. Сделай это так:
GuiceApplicationBuilder guiceApplicationBuilder = new GuiceApplicationBuilder()
.withConfigLoader(environment -> ConfigFactory.load(config));
или просто
GuiceApplicationBuilder guiceApplicationBuilder = new GuiceApplicationBuilder()
.configure(config);
При взгляде на подписи методов вы заметите , что они все возвращаются (новый!) GuiceApplicationBuilder
.