No se puede inyectar prueba Config en juego! 2.6 aplicación creada por Guice

Chnmuc:

En una prueba unitaria en un juego! 2.6.25 aplicación ejecutada en IntelliJ, estoy tratando de inyectar una prueba de configuración: Config en una aplicación: aplicación creada por Guice. Pero la aplicación: La aplicación no contiene la configuración inyectado. ¿Qué estoy haciendo mal?

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

También probamos (sin éxito):

guiceApplicationBuilder.loadConfig(config);
guiceApplicationBuilder.configure(config);
cbley:

En realidad se está desechando el Generador de aplicaciones que tiene su gestor propio de configuración ya que el constructor es una estructura de datos inmutables. Hazlo asi:

GuiceApplicationBuilder guiceApplicationBuilder = new GuiceApplicationBuilder()
  .withConfigLoader(environment -> ConfigFactory.load(config));

o simplemente

GuiceApplicationBuilder guiceApplicationBuilder = new GuiceApplicationBuilder()
  .configure(config);

Cuando se mira en la firma de los métodos se nota que todo retorno (una nueva!) GuiceApplicationBuilder.

Supongo que te gusta

Origin http://10.200.1.11:23101/article/api/json?id=401040&siteId=1
Recomendado
Clasificación