Annotation Interface ReferenceCounted
@Deprecated(forRemoval=true,
since="3.0.3")
@Documented
@NormalScope(passivating=false)
@Retention(RUNTIME)
@Target({TYPE,METHOD,FIELD})
public @interface ReferenceCounted
Deprecated, for removal: This API element is subject to removal in a future version.
This annotation is slated for removal.
An annotation indicating the bean that is annotated belongs to the
ReferenceCountedContext
.
Use Cases
Annotate a class with @ReferenceCounted
when all of the following apply:
- You need an instance of your class to be associated with exactly one thread.
- You need the single thread-specific instance of your class to be destroyed eagerly, but not too eagerly. Specifically, you need the instance to be destroyed when it is no longer in use by any other object that is not itself destroyed.
- If an instance of your class is destroyed, and some other object asks for an instance of your class, a new instance should be provided.
Another way of thinking of @ReferenceCounted
-annotated classes is that they
behave as though they were members of a slightly shorter-lived
application
scope.
Still another way of thinking of @ReferenceCounted
-annotated classes is that they
behave as though they were members of request scope, but with the
notional request starting upon first instantiation.
- See Also: