Overview | Package | Class | Deprecated | Index | Help
| Groovy Documentation
| FRAMES NO FRAMES
SUMMARY: REQUIRED | OPTIONAL | DETAIL: ELEMENT

## groovy.lang
[Java] Annotation Type Singleton

    java.lang.Object
      groovy.lang.Singleton

    @Retention(RetentionPolicy.SOURCE)
    @Target({ElementType.TYPE})
    @GroovyASTTransformationClass("org.codehaus.groovy.transform.SingletonASTTransformation")
    public @interface Singleton

Class annotation to make class singleton. Singleton can be initialized in static initialization of the class or lazily (on first access) To make singleton lazy it is enough to use `@Singleton(lazy=true)` Lazy singletons implemented with double check locking and volatile field

Authors:
  Alex Tkachman

Optional Element Summary
`boolean` | `lazy` @default false Returns: if this singleton should be lazy
`java.lang.String` | `property` @default "instance" Returns: the singleton property name

Method Summary

Methods inherited from class java.lang.Object
java.lang.Object#wait(long), java.lang.Object#wait(long, int), java.lang.Object#wait(), java.lang.Object#equals(java.lang.Object), java.lang.Object#toString(), java.lang.Object#hashCode(), java.lang.Object#getClass(), java.lang.Object#notify(), java.lang.Object#notifyAll()

Element Detail

### lazy

    public boolean lazy

  @default false
  Returns:
    if this singleton should be lazy

### property

    public java.lang.String property

  @default "instance"
  Returns:
    the singleton property name

Groovy Documentation