You could have a look at multi binders.
https://github.com/google/guice/wiki/Multibindings

Then bind all possible implementations of an interface and use the value from the properties to select the one out of the set.



On 19.06.2018 16:33, 'Mariano Gonzalez' via google-guice wrote:
Hello,

I have a case in which a portion of the binding are dynamically provided through a properties file with the following format:

|
exampleService=ExampleServiceImpl
fooService=FooServiceImpl

|

Unlike Guice's approach, the key is not a type but an actual Name. For now, I'm just binding those concrete types to themselves, like /bind(FooServiceImpl.class).to(bindFooServiceImpl.class)/

Of course this approach doesn't work because then the following injection would fail:

|
publicclassFoo{


@Inject
privateFooServicefooService;


}
|

There's no default way in which Guice would figure out that FooService can actually be served by FooServiceImpl. The alternative that I have thought about so far is to introspect those types and generate bindings for each superclass and implemented interface.

I was wondering is there's a less "brute force" approach.

Thanks
--
You received this message because you are subscribed to the Google Groups "google-guice" group. To unsubscribe from this group and stop receiving emails from it, send an email to google-guice+unsubscr...@googlegroups.com <mailto:google-guice+unsubscr...@googlegroups.com>. To post to this group, send email to google-guice@googlegroups.com <mailto:google-guice@googlegroups.com>.
Visit this group at https://groups.google.com/group/google-guice.
To view this discussion on the web visit https://groups.google.com/d/msgid/google-guice/7d2ec09b-9702-4615-85f2-82f47329c9b5%40googlegroups.com <https://groups.google.com/d/msgid/google-guice/7d2ec09b-9702-4615-85f2-82f47329c9b5%40googlegroups.com?utm_medium=email&utm_source=footer>.
For more options, visit https://groups.google.com/d/optout.

--
You received this message because you are subscribed to the Google Groups 
"google-guice" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to google-guice+unsubscr...@googlegroups.com.
To post to this group, send email to google-guice@googlegroups.com.
Visit this group at https://groups.google.com/group/google-guice.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/google-guice/09b132e0-2d0b-40ac-2537-16b5a88f7d77%40gmx.ch.
For more options, visit https://groups.google.com/d/optout.

Reply via email to