hello,

The pattern you sketch would be more fitting for Guice / general DI if it
read:

class A {
  @Inject private SqlSession session;
}

class B {
  private final A a;

  @Inject B(A a) {
     this.a = a;
   }
}

class C {
  public static void main(String[] args) {
    Injector injector = Guice.createInjector(...);
    B b = injector.getInstance(B.class):
 }
}

Meaning that the instance of A is created by Guice, and not by "new."

In a case where you're stuck using "new" (e.g., when migrating code), you
can call injector.injectMembers(instance);

Fred

On Sat, May 28, 2011 at 9:52 PM, Stefan <[email protected]>wrote:

> Hi,
> is the following possible with Guice?
>
> class A
> {
>   @Inject
>   private SqlSession session;
> }
>
> class B
> {
>    private A a;
>
>    public B()
>    {
>          a = new A();
>    }
> }
>
> class C
> {
>     public static void main()
>     {
>         ...
>         B b = injector.getInstance(B.class);
>     }
> }
>
> I have a provider binded to class SqlSession. My problem is that
> session field in class A is not injected. Should I create injector in
> constructor of B and get instance of A from injector? Isn't it then
> easier to avoid Guice at all? I'm confused.
>
> --
> You received this message because you are subscribed to the Google Groups
> "google-guice" group.
> To post to this group, send email to [email protected].
> To unsubscribe from this group, send email to
> [email protected].
> For more options, visit this group at
> http://groups.google.com/group/google-guice?hl=en.
>
>

-- 
You received this message because you are subscribed to the Google Groups 
"google-guice" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/google-guice?hl=en.

Reply via email to