How to create/bind singleton object of 3rd party class which has 2 argument constructor. I need to pass 2 singleton object in the constructor

49 views
Skip to first unread message

Akash Patel

unread,
Jan 21, 2017, 2:23:05 PM1/21/17
to google-guice
 I have 3rd party API and i need to inject that api object as singleton through google juice. That class has 2 argument constructor and i need to pass 2 argument (Both are object) from my api.

Similar to this 


GetTemplate getTemplate = new GetTemplate(new PluginRegistory(),

                                                  new DefaultExceptionHandler());


GetTemplate is 3rd party api class and i need to pass my 2 implementation of PluginRegistory and DefaultExceptionHandler. How i can do this with google guice? I was doing it with spring by "constructor-args" 

Olivier Grégoire

unread,
Jan 21, 2017, 2:47:59 PM1/21/17
to google-guice
I think this would have better been asked on Stack Overflow, but still here's an answer:


public class MyModule extends AbstractModule {
  @Override protected void configure() {
    // Normal bindings
  }
 
  @Provides
  // @Singleton
  GetTemplate provideGetTemplate(PluginRepository pluginRepository, ExceptionHandler exceptionHandler) {
    return new GetTemplate(pluginRepository, exceptionHandler);
  }
}

--
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...@googlegroups.com.
To post to this group, send email to google...@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/9c698b1f-704a-4e61-b931-39d82fba4ad2%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Stephan Classen

unread,
Jan 21, 2017, 5:06:05 PM1/21/17
to google...@googlegroups.com
Or simply:
bind(GetTemplate.class).toInstance(new GetTemplate(...));

Akash Patel

unread,
Jan 23, 2017, 2:12:36 AM1/23/17
to google-guice
Thanks. That works for me. I am posting the same question on the stackoverflow so that it will have good visibility for others.
Reply all
Reply to author
Forward
0 new messages