An optional annotation that may be placed on a service building method of a module, or on the implementation class
(when using service binding). The annotation overrides the default scope for services (the default being a global
singleton that is instantiated on demand) for an alternate lifecycle. Alternate lifecycles are typically used to bind
a service implementation to a single thread or request. Modules may define new scopes. Each scope should have a
corresponding
ServiceLifecycle implementation. The linkage from scope name to service lifecycle occurs via a
contribution to the
ServiceLifecycleSource service configuration.
The annotation may also be placed directly on a service implementation class, when using service binding (via
the
ServiceBinder).