(Quick Reference)

scope

Purpose

Changes the scope of a service

Examples

class BookService {
    static scope = "session"
    ...
}

Description

By default services are "singleton" scoped which means that clients of a service only ever use a single instance (a singleton) of the service. This behaviour can be changed by specifying a scope attribute with on the following values:

  • prototype - A new service is created every time it is injected into another class

  • request - A new service will be created per request

  • flash - A new service will be created for the current and next request only

  • flow - In web flows the service will exist for the scope of the flow

  • conversation - In web flows the service will exist for the scope of the conversation. ie a root flow and its sub flows

  • session - A service is created for the scope of a user session

  • singleton (default) - Only one instance of the service ever exists

See Scoped Services in the user guide for more information.