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.