# Package grails.artefact

- Trait Summary
  Trait | Description
  --- | ---
  AsyncController | @author Jeff Brown
  Controller | Classes that implement the Controller trait are automatically treated as web controllers in a Grails application
  DomainClass | A trait implemented by all domain classes
  Interceptor | An interceptor can be used to intercept requests to controllers and URIs
  Service | A trait implemented by all services
  TagLibrary | A trait that makes a class into a GSP tag library

- Annotation Type Summary
  Annotation Type | Description
  --- | ---
  ApiDelegate | Similar to Groovy's @Delegate AST transform but instead assumes the first argument to every method is 'this'.
  Artefact | Used to define the artefact type for classes declared outside of Grails' usual conventions.
  Enhanced | An annotation for classes that are compile-time enhanced.
  Enhances | Can be applied to any Trait to indicate to Grails that the trait should be automatically added to the given artefact types