Customizable injection of bean properties, based on http://code.google.com/p/google-guice/wiki/CustomInjections.
For example:
new AbstractModule() { @Override protected void configure() { bindListener( Matchers.any(), new BeanListener( new MyBeanBinder() ) ); } }
MyBeanBinder
will be asked to supply a PropertyBinder
for each bean type, say Foo.
That PropertyBinder
will be asked to supply a PropertyBinding
for each property (field or setter) in Foo.
Those PropertyBinding
s are then used to automatically configure any injected instances of Foo.