Daga: ¿Inyectar cuerdas @Named?

EDITAR 2018-02-08: Proyecto de muestra que muestra cómo hacer esto enhttps://github.com/ravn/dagger2-named-string-inject-example - Nota:toda la fuente está en un solo archivo!

Estoy viendo si Dagger puede reemplazar a Guice para nosotros (ya que nuestra plataforma Java de implementación es lenta).

Construyo un mapa de cadenas de configuración en tiempo de ejecución, que me gustaría que se inyectara con daga cuando fuera necesario.

P.ej. Si tengo

java.util.Map<String, String> map = new java.util.TreeMap<String, String>();
map.put("key", "value");

y

@Inject
Thermosiphon(Heater heater, @Named("key") String value) {
    this.heater = heater;
    System.out.println("value =" + value);
}

Me gustaría tener "valor" inyectado en valor.

Los ejemplos en el código fuente no tienen ningún uso de @Named. Solo intentarlo da la siguiente excepción:

Exception in thread "main" java.lang.IllegalStateException: Errors creating object graph:
  No binding for @javax.inject.Named(value=key)/java.lang.String required by class bar.Thermosiphon
    at dagger.internal.ThrowingErrorHandler.handleErrors(ThrowingErrorHandler.java:34)
    at dagger.internal.Linker.linkRequested(Linker.java:146)
    at dagger.ObjectGraph$DaggerObjectGraph.getInjectableTypeBinding(ObjectGraph.java:288)
    at dagger.ObjectGraph$DaggerObjectGraph.get(ObjectGraph.java:249)
    at app.CoffeeApp.main(CoffeeApp.java:20)

¿Cómo debo abordar esto?

Respuestas a la pregunta(2)

Su respuesta a la pregunta