- Play is not Java EE
Play has dropped many traditional approaches used in Java web development. It does not use servlets. The biggest difference between Java EE and Play is simplicity. Play focuses on providing simplicity to developers so that they can focus on their business problems and not on the framework itself. It does not use huge monolithic web application servers (JBoss, Glassfish) and XML configuration files.
- Play uses JBoss Netty for the web server by default.
- It uses the Scala SBT build tool to build applications.
- It is a RESTful framework.
- It has a persistence layer based on JPA.
- It uses Scala for the template engine.
- It is a full stack framework which contains libraries for many common development tasks such as JSON parsing, validation, persistence, or authentication.
- Improved developer productivity
Make a code change, refresh the page, see the change. Hot reload for all Java code, templates, config changes, etc allows you to iterate much faster.
Play is built on Netty, so it supports non-blocking I/O. This means it’s very easy and inexpensive to make remote calls in parallel, which is important for high performance apps in a service oriented architecture. It also makes it possible to use server push technologies such as Comet and WebSockets.
Play is flexible: almost everything is pluggable, configurable, and customizable. This means it’s easy to change or extend any part of the framework. For example, you can rewrite the way Play handles request parsing. You can also plug your own logic inside the framework lifecycle, for example, before your application is started.
- Play is modular
The Play framework is composed of several modules: core, jdbc, jpa, json, cache, and more.
It’s easy to integrate a Play framework application with other legacy systems. For example, you can easily integrate with an LDAP server to authenticate using third-party libraries and make calls into it. Play provides hooks to plug in your custom code throughout the framework. Out of the box, you can integrate with any existing database through JPA, JDBC, or you can add your own persistence layer.
Play is open source.