A module to interface Spring and the Play! framework
Switch branches/tags
Nothing to show
Clone or download
Pull request Compare This branch is 12 commits behind pepite:master.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.


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"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springsource.org/dtd/spring-beans-2.0.dtd">

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