@Override
    protected void configure()
    {
        final Disposer disposer = new Disposer();

        bind( Disposer.class ).toInstance( disposer );

        bindListener( getTypeMatcher(), new AbstractMethodTypeListener( getAnnotationType() )
        {

            @Override
            protected <I> void hear( final Method disposeMethod, TypeEncounter<I> encounter )
            {
                encounter.register( new InjectionListener<I>()
                {

                    public void afterInjection( I injectee )
                    {
                        disposer.register( disposeMethod, injectee );
                    }

                } );
            }

        } );
    }
@ Override protected void configure ( ) { final Disposer disposer = new Disposer ( ) ; bind ( Disposer . class ) . toInstance ( disposer ) ; bindListener ( getTypeMatcher ( ) , new AbstractMethodTypeListener ( getAnnotationType ( ) ) { @ Override protected < I > void hear ( final Method disposeMethod , TypeEncounter < I > encounter ) { encounter . register ( new InjectionListener < I > ( ) { public void afterInjection ( I injectee ) { disposer . register ( disposeMethod , injectee ) ; } } ) ; } } ) ; }
{@inheritDoc}