# Interface PlayApplicationSpec

All Superinterfaces:
  `ApplicationSpec, ComponentSpec, GeneralComponentSpec, ModelElement, Named, PlatformAwareComponentSpec, PlayPlatformAwareComponentSpec, SourceComponentSpec, VariantComponent, VariantComponentSpec`

@Incubating public interface PlayApplicationSpec extends ApplicationSpec, PlayPlatformAwareComponentSpec
Definition of a Play Framework software component that is built by Gradle.

## Nested Class Summary

### Nested classes/interfaces inherited from interface Named

`Named.Namer`

## Method Summary

Modifier and Type
Method
Description
`boolean`
`getInjectedRoutesGenerator()`
Will an injected router be generated for this application?
`void`
`platform(Object platformRequirements)`
Specifies a `PlayPlatform` with a given set of requirements that this component should be built be for.
`void`
`setInjectedRoutesGenerator(boolean injectedRoutesGenerator)`
Configures the style of router to use with this application.

### Methods inherited from interface ComponentSpec

`getProjectPath`

### Methods inherited from interface ModelElement

`getDisplayName`

### Methods inherited from interface PlatformAwareComponentSpec

`targetPlatform`

### Methods inherited from interface SourceComponentSpec

`getSources`

### Methods inherited from interface VariantComponent

`getName, getVariants`

### Methods inherited from interface VariantComponentSpec

`getBinaries`

## Method Details

### platform

void platform(Object platformRequirements)
Specifies a `PlayPlatform` with a given set of requirements that this component should be built be for. Can accept a map of play, scala and/or java requirements or a string representation of the desired play platform.

        model {
             components {
                 play {
                     platform 'play-2.3.9'
                     platform play: '2.3.2'
                     platform play: '2.3.6', scala: '2.10'
                     platform play: '2.3.7', scala: '2.11', java: '1.8'
                 }
             }
         }

Specified by:
  `platform` in interface `PlayPlatformAwareComponentSpec`
Parameters:
  `platformRequirements` - Map of Play requirements or the name of an Play platform.

### setInjectedRoutesGenerator

void setInjectedRoutesGenerator(boolean injectedRoutesGenerator)
Configures the style of router to use with this application.

By default, a static routes generator is used to generate a singleton router. This requires that all the actions that the router invokes on the application's controllers are either Scala singleton objects, or Java static methods.

In Play 2.4+, a injected routes generator is recommended. This requires that the router declares its dependencies to the application's controllers in its constructor. The controllers methods need to be instance methods.

Parameters:
  `injectedRoutesGenerator` - false if a static router should be generated (default). true if an injected router should be generated.

### getInjectedRoutesGenerator

boolean getInjectedRoutesGenerator()
Will an injected router be generated for this application?

Returns:
  false if a static router will be generated for the application, true if an injected router will be generated.