@Documented @Target(value={TYPE,METHOD}) @Retention(value=RUNTIME) public @interface Shareable
Shareable components must meet the following requirements:
Shareable components will be reused as much as possible. If a shareable component has no non-transient non-shareable dependencies, then it will be created once per recommender engine rather than per-recommender.
The Shareable annotation should be on the component implementation, not interface. Alternatively,
it can be on the Provider.get()
method of a provider to indicate that the
objects returned by the provider are shareable.