It sidesteps Guice unless it is within a @Provides method, or a Provider instance that is bound, in which case guice still manages the lifecycle but delegates to the Provides method to do the actual creation itself.

Christian

On 12 Apr 2013, at 17:43, Alper Akture wrote:

Thanks alot, that all makes total sense. I just was thinking, since Guice
is the one calling the provider method, it could know the instance I'm
creating is supposed to be a singleton, and enforce that somewhere along the line. I guess any "new" not done by Guice sides steps that ability.

On Friday, April 12, 2013 2:11:58 PM UTC-7, Jeff wrote:

If your @Provider does not have @Singleton, Guice will call the provider
for every instance it is asked for and run whatever code is defined.

Doing a 'new' (or anything else for that matter) inside the provider is
outside Guice's scope, unless you are interacting with the @Injector
directly.  Guice must manage the object lifecycle.

What I don't know is if Guice looks for and honors the @Singleton
annotation on the class itself or whether it must be defined as singleton
via the bindings.


On Fri, Apr 12, 2013 at 2:34 PM, Alper Akture <[email protected]<javascript:>
wrote:

I have an @Provides method in a module that creates an object for me, and the class of that object has @Singleton on it. I found that merely having
the @Singleton on the class does not enforce a single instance being
created. After adding @Singleton to the @Provider method, I do get a single instance. Even though I am doing a "new" on the object in my provider method, couldn't Guice see that the @Provider method is creating it, and do the same thing it does (keep a single instance handy and give it out when
requested) when having the @Singleton on the provider method?

--
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 [email protected] <javascript:>.
To post to this group, send email to [email protected]<javascript:>
.
Visit this group at http://groups.google.com/group/google-guice?hl=en.
For more options, visit https://groups.google.com/groups/opt_out.






--
Jeff Vincent
See my LinkedIn profile at:
http://www.linkedin.com/in/rjeffreyvincent
I ♥ DropBox <http://db.tt/9O6LfBX> !!


--
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 [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/google-guice?hl=en.
For more options, visit https://groups.google.com/groups/opt_out.


Christian Gruber :: Google, Inc. :: Java Core Libraries :: Dependency Injection
email: [email protected] :::: mobile: +1 (646) 807-9839

--
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 [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/google-guice?hl=en.
For more options, visit https://groups.google.com/groups/opt_out.


Reply via email to