Package org.eclipse.sisu.bean
Customizable injection of bean properties, based on https://github.com/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 PropertyBindings are then used to automatically configure any injected instances of Foo.
-
Interface Summary Interface Description BeanBinder Provides customPropertyBinders for beans that contain one or more properties.BeanManager Service that manages the lifecycle of beans.BeanProperty<T> Represents a bean property such as a field or setter method.PropertyBinder Provides customPropertyBindings for bean properties such as fields or setter methods.PropertyBinding Represents a bean property that has been bound by aPropertyBinder. -
Class Summary Class Description BeanListener TypeListenerthat listens for bean types and arranges for their properties to be injected.BeanProperties Iterablethat iterates over potential bean properties in a class hierarchy.BeanScheduler Schedules safe activation of beans even when cyclic dependencies are involved.
Takes advantage of the new Guice ProvisionListener SPI, if available at runtime.DeclaredMembers Iterablethat iterates over declared members of a class hierarchy.LifecycleManager BeanManagerthat manages JSR250 beans and schedules lifecycle events.LifecycleModule GuiceModulethat provides lifecycle management by followingPostConstructandPreDestroyannotations, or corresponding JSR250PostConstructandPreDestroyannotations. -
Enum Summary Enum Description DeclaredMembers.View Enumimplementation that provides different views of a class's members. -
Annotation Types Summary Annotation Type Description IgnoreSetters Annotates class hierarchies that don't want setter injection.