Advertisement
Guest User

Untitled

a guest
Jul 16th, 2019
71
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.16 KB | None | 0 0
  1. import com.google.inject.AbstractModule;
  2. import com.google.inject.Guice;
  3. import com.google.inject.Injector;
  4. import com.google.inject.Module;
  5. import com.google.inject.spi.ProvisionListener;
  6.  
  7. import static com.google.inject.matcher.Matchers.any;
  8.  
  9. public class InstantiationTrackerExample {
  10. interface SomeTaggingInterface {
  11.  
  12. }
  13.  
  14. static class MyClass implements SomeTaggingInterface {
  15.  
  16. }
  17.  
  18. public static void main(String[] args) {
  19. final Injector injector = Guice.createInjector(myAppModule());
  20. injector.getInstance(MyClass.class);
  21. }
  22.  
  23. private static Module myAppModule() {
  24. return new AbstractModule() {
  25. @Override
  26. protected void configure() {
  27. bindListener(any(), new ProvisionListener() {
  28. @Override
  29. public <T> void onProvision(final ProvisionInvocation<T> provision) {
  30. final T instance = provision.provision();
  31. if (instance instanceof SomeTaggingInterface) {
  32. System.out.println(instance);
  33. }
  34. }
  35. });
  36. }
  37. };
  38. }
  39. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement