Guest User

http://stackoverflow.com/q/19587015/1426891

a guest
Oct 25th, 2013
247
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.69 KB | None | 0 0
  1. package com.jbowman;
  2.  
  3. import com.google.inject.AbstractModule;
  4. import com.google.inject.Guice;
  5. import com.google.inject.Inject;
  6. import com.google.inject.Injector;
  7. import com.google.inject.Module;
  8. import com.google.inject.Provides;
  9. import com.google.inject.TypeLiteral;
  10. import com.google.inject.matcher.Matchers;
  11. import com.google.inject.spi.TypeEncounter;
  12. import com.google.inject.spi.TypeListener;
  13.  
  14. public class GuiceTest {
  15.  
  16.   public static class A { @Inject B b; }
  17.   public static class B { @Inject C c; }
  18.   public static class C { }
  19.   public static class D { }
  20.   public static class E { }
  21.  
  22.   public static void main(String[] args) {
  23.     Module module = new AbstractModule() {
  24.       public void configure() {
  25.         bindListener(Matchers.any(), new TypeListener() {
  26.           @Override
  27.           public <I> void hear(TypeLiteral<I> typeLiteral, TypeEncounter<I> typeEncounter) {
  28.             System.out.println("heard " + typeLiteral);
  29.           }
  30.         });
  31.       }
  32.  
  33.       @Provides D getD(E getE) {
  34.         return new D();
  35.       }
  36.     };
  37.     System.out.println("Injector creation started");
  38.     Injector injector = Guice.createInjector(module);
  39.     System.out.println("Injector creation complete");
  40.     injector.getInstance(A.class);
  41.     System.out.println("A request complete");
  42.     injector.getInstance(D.class);
  43.     System.out.println("D request complete");
  44.   }
  45. }
  46.  
  47. /* output:
  48. Injector creation started
  49. heard com.google.inject.internal.ProviderMethod
  50. heard com.google.inject.Stage
  51. heard com.jbowman.GuiceTest$E
  52. Injector creation complete
  53. heard com.jbowman.GuiceTest$C
  54. heard com.jbowman.GuiceTest$B
  55. heard com.jbowman.GuiceTest$A
  56. A request complete
  57. D request complete
  58. */
Add Comment
Please, Sign In to add comment