Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import com.google.inject.AbstractModule;
- import com.google.inject.Guice;
- import com.google.inject.Injector;
- import com.google.inject.Module;
- import com.google.inject.spi.ProvisionListener;
- import static com.google.inject.matcher.Matchers.any;
- public class InstantiationTrackerExample {
- interface SomeTaggingInterface {
- }
- static class MyClass implements SomeTaggingInterface {
- }
- public static void main(String[] args) {
- final Injector injector = Guice.createInjector(myAppModule());
- injector.getInstance(MyClass.class);
- }
- private static Module myAppModule() {
- return new AbstractModule() {
- @Override
- protected void configure() {
- bindListener(any(), new ProvisionListener() {
- @Override
- public <T> void onProvision(final ProvisionInvocation<T> provision) {
- final T instance = provision.provision();
- if (instance instanceof SomeTaggingInterface) {
- System.out.println(instance);
- }
- }
- });
- }
- };
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement