فریم ورک های بر پایه معماری MVC زیادی در جاوا وجود دارد پیشنهاد من Spring MVC و یا Play Framework است ولی انتخاب خودم Play Framework است.
Spring MVC بر پایه مفاهیم Java EE و Servlet ساخته شده است و برای اجرا به یک servlet container احتیاج دارد ولی Play Framework با استفاده از وب سرور داخلی خود که با netty نوشته شده است اجرا می شود.
دلایل اصلی انتخاب Play Framework:
- مدرن بودن فریم ورک (agile بودن، ابزار های تست در تمام سطوح out of the box آمادس و ...).
- امکان integrate ابزار ها و فریم ورک های موجود جاوایی (مثل Spring و Hibernate و ...).
- پشتیبانی کامل از مفاهیم REST.
- سبک وزن (lightweight).
- کاملا stateless بودن. برای مثال با استفاده از nginx به راحتی scale میشه.
- وجود فریم ورک قدرتمند akka که در موارد پیچیده مثل clustering یا مباحث fail-over و ... خیلی کاربردیه.
- template engine خیلی قوی و خوش دست.
- ...