Skip to content


Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
A module to interface Spring and the Play! framework
branch: master

Merge pull request #13 from lenniboy/master

Added Documentation for "mode specific filenames" application-contexts

latest commit 0e2af5bfe6
@domdorn domdorn authored


Spring module

The spring support module help you to integrate Spring managed beans with a play application.

Enable the Spring module for the application

In the /conf/application.conf file, enable the Spring module by adding this line:

# The spring module

Define an application-context.xml registry

In the conf/ directory of the application you can then create a application-context.xml file and define some beans.

For example:

<?xml version="1.0" encoding="UTF-8"?>

You can also define a separate application context which will be used for running the tests by prefixing the filename with the Play! id, ie. test.application-context.xml. This works also works for dev and prod.

Retrieve beans from application code

You can obtain bean instances from the application code, using the play.modules.spring.Spring helper.

public Application extends Controller {
public static void index() { Test test = Spring.getBeanOfType(Test.class); … }


@javax.inject.Inject support

Not implemented yet.

Automatic Component Scanning

Spring 2.5 and later supports auto-wiring and component identification using annotations, obviating the need to define beans explicitly in XML.

To enable component scanning, add this line to the /conf/application.conf file:


Note that enabling this scans for @org.springframework.stereotype.Component, @org.springframework.stereotype.Repository, @org.springframework.stereotype.Service to identify Spring beans. Additionally, running the component scan enables support for annotation based configuration (i.e., @org.springframework.beans.factory.annotation.Autowired, etc).

Limited Scanning

You can limit the classes scanned to specific packages or canonical class names with this line in the /conf/application.conf file:


In this example, only classes whose canonical name start with either ‘controllers.beans’ or ‘services’ will be scanned and identified as beans.

Manual PropertyPlaceholderConfigurer configuration

By default, a org.springframework.beans.factory.config.PropertyPlaceholderConfigurer containing the properties of application.conf is added to the Spring context. In some cases, this may not be desirable as it can conflict with a PropertyPlaceholderConfigurer that you have defined in your application-context.xml. To disable the automatic PropertyPlaceholderConfigurer placement into the context, update application.conf with


and then add your own definition to application-context.xml.

If you want to have your own properties and those of your Play! application handled by a PropertyPlaceholderConfigurer, you can add all of them in application-context.xml:

<bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
    <property name="locations">


If you want the Spring configuration loader to be namespace aware, you need to explicitly state this in the configuration using


Spring profiles

If you want to configure Spring profile(s), add the following to the conf/application.conf

Something went wrong with that request. Please try again.