I’ve put together a CanDI binding pattern tutorial (pdf) for four major binding patterns: services, resources, startup, and plugin/extensions.
Focusing on common CanDI patterns should show how CanDI is used in full applications like SubEtha maillist manager, and avoid the temptation to focus on complicated features that only 1% of applications would ever need.
In the tutorial, the key CanDI classes are:
- @Current - the service and unique bean binding annotation.
- @BindingType - the resource custom binding annotation used for declarative injection.
- Instance<T> - the extension/plugin iterator and programmatic bean factor.
- @Any - the special annotation for extension/plugin matching of any registered beans