A binding is a connection between a component and its container (another component), that allows the embedded component to gain access to
resources defined by the container. Resources can represent any kind of value that can be obtained from the parent component, but is often a JavaBean property that can be read and updated. Different implementations of Binding as used to access different kinds of resources of the container.
A binding ultimately must provide access to the underlying annotations. In most cases, there are no annotations, but bindings that ultimate invoke methods or read and update fields must provide access to those annotations.