@Documented @Target(value={TYPE,METHOD}) @Retention(value=RUNTIME) public @interface Shareable
Mark a component implementation as shareable. Shareable components can be shared between recommender sessions. Things like item-item models should be 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.