When comparing Play 2 vs Spring MVC, the Slant community recommends Spring MVC for most people. In the question“What are the best Java web frameworks?” Spring MVC is ranked 1st while Play 2 is ranked 2nd. The most important reason people chose Spring MVC is:
Being the oldest and most used JVM web framework, means that Spring MVC has a massive community of followers who are very helpful and have provided numerous tutorials and answers on SO. Spring even holds an annual conference called SpringOne. The Spring forums and SO are great places to ask and get help about anything Spring related. The website blog and newsletter keep developers informed on every news related with the framework.
Ranked in these QuestionsQuestion Ranking
Pro Rapid application development
All error checking and testing done in the browser only needs a page refresh to show the latest updates. This is huge, allowing the ability to code in real-time and make quick edits. Without it the develop would need to reboot/recompile the entire application to test with new data.
Pro Very fast and easy to install, it is a revolutionary framework
Pro Great resources
With some basic starting tutorials and a fleshed out documentation, there will be no need to go asking others for help, there should be enough for a developer to find a solution.
Pro Asynchronous requests
Everything with Play has been built with asynchronous requests in mind. This will result in the application not blocking results while waiting on other operations. With this implemented your application can be developed with multiple threads in mind without worrying about hanging on one request before it completes another.
Pro Supports Scala
Pro Spring MVC has a massive community
Being the oldest and most used JVM web framework, means that Spring MVC has a massive community of followers who are very helpful and have provided numerous tutorials and answers on SO.
Spring even holds an annual conference called SpringOne. The Spring forums and SO are great places to ask and get help about anything Spring related. The website blog and newsletter keep developers informed on every news related with the framework.
Pro Spring apps are highly scalable
Applications are meant to scale as the framework is used in large-scale applications worldwide. Components like EhCache are used to scale memory cache and it also contains components used for parallel processing.
Batch enables processing of large volumes of records and job processing statistics.
Pro Great documentation that covers almost everything.
The official documentation covers virtually everything. The official website also has a series of great tutorials in video and text formats. There are links to Github repositories for Spring sample applications and there are also a lot of third-party tutorials out there for the fact that Spring MVC is so widely used by many experienced developers.
Pro Spring has an extensive ecosystem
It is based and is dependent on the Spring Framework, therefore it benefits from tools like for example Roo and Spring Tool Suite and many more tools included in the Spring Framework. All Maven dependencies are available in a public Maven repository.
There are also 3rd-party solutions for Spring, such as MyEclipse which includes scaffolding capability for Spring MVC.
Con Not backword-compatible
Applications that have been written in Play 1 will not be supported in Play 2 as the core of the framework was rewritten in Scala. This includes plugins that were working in Play 1 as well.
Con Becoming a Scala framework
As Play continues to develop and mature it seems as if it is becoming less of a Java framework as the core has been rebuilt in Scala. This may deter adopters.
Con Steep learning curve
Con Lacking in UI development
While actually very good and with a very complete and rich feature set to develop and maintain code on the server side, it still doesn't provide any rich framework for building good user interfaces.
Con Updating and code maintenance can be a grueling task if you are a beginner.
Updating your project is manageable if you’re already familiar with the framework and the project itself, but if you’re just diving in it can be a little overwhelming and hard.
Con Complex and not newbie friendly
Spring MVC architecture although simple has a lot of layers and abstractions which can be hard to debug if problems arise. It is also highly dependant on the Spring core.
It's an old and mature framework that has numerous amount of ways to extend and configure it – and this actually makes it fairly complex.
Con Bloated legacy DI API
Spring DI is bloated and rather complex in comparison to CDI.
Con Slow Prototyping
If you are looking to build a quick prototype fast and easy, Spring isn't going to help much. It's very large and quite hard to grasp if you are just beginning with it.