Play! framework

Java

Scala

Async I/O

Templates

sbt
Akka
WebSockets

The Play framework makes it easier to build scalable & complex web applications in Java and Scala.

What is special about PLAY

Stateless

Play is fully RESTful - there is no Java EE session per connection. This makes Play more outwardly-scalable than many other frameworks.

No configuration

download, unpack and develop.

Easy round trips

no need to deploy to an application server, just edit the code and press the refresh button on the browser.

Integrated unit testing

JUnit and Selenium support is included in the core.

Elegant API

rarely will a developer need to import any third party library - Play comes with all the typical stuff built-in.

Static methods

all controller entry points and business logic methods are declared as static. This is very different from what can be seen in other Java frameworks.

Asynchronous I/O

due to using JBoss Netty as its web server, Play can service long requests asynchronously rather than tying up HTTP threads doing business logic like Java EE frameworks that don't use the asynchronous support offered by Servlet 3.0

Modular architecture

like Rails and Django, Play comes with the concept of modules. These provide an elegant and simple way to expand the core.

CRUD module

easily build administration UI with little code.

Scala module

provides complete support with a Scala-specific database access layer (Anorm) and templating language

Play uses Java libraries


JBoss Netty for the web server
Hibernate for the data layer
Groovy for the template engine
The Eclipse compiler for hot-reloading
Apache Ivy for dependency management

A Java framework without the pain...
Play is a pure Java framework and allows you to keep your preferred development tools and libraries. If you already use Java as a development platform you don't need to switch to another language, another IDE and other libraries. Just switch to a more productive Java environment!